Попытки перевода Inform'а привели к ряду интересных наблюдений.
I. Русские буквы многие интерпретаторы отображают.
II. Есть возможность добавлять русские буквы в таблицу символов.
III и самое главное: Winfrotz тображает вводимые русские буквы как "?". Что интересно, если вставить русский текст из буфера, то он будет виден, и программа примет и поймёт его. Т.е. ввод русских букв попросту заблокирован!
Зачем, можно только догадываться. Быть может дело в том, что при вставлении буквы "я", она занимает две буквенных позиции и автор, не удосужившись решить эту проблему, забросил это дело. Сайт Winfrotz не обновлялся с 1998 года...
В общем, нужно либо писать свой интерпретатор
z-machin'ы, либо доставать американских товарищей до победного конца...
Неактивен
Насколько я помню свои эксперименты с Inform добавление русских букв в словарик работает как-то странно, совсем не по документации. По моему, там были проблемы в словарных словах на русском - они попросту не работали. Так что даже если вставлять текст из буфера - результата никакого не будет - все равно программно его обработать у меня не получалось.
А с написанием интерпретатора Z машины особых проблем нет - было бы желание. Открытых исходников этого дела - хоть отбавляй.
Неактивен
Некоторые ошибки наблюдаются, но они не глобальны и имеют некоторую закономерность.
Тут можно скачать кусочек игры http://rtads.narod.ru/inf.zip.
Там сказанно какие команды можно вводить.
Направления он понимает. Вероятно, дело в механизме создания абревиатур или сходного.
Неактивен
Собственно, в целях русификации inform как-то придумал несложный механизм (транслит+переключатели), и почти дофиксил интерпретатор jzip под это дело (русский он выводил, но с ц я не очень дружу, поэтому не нашёл, как в bc сделать русский ввод :x ). Могу выслать наработки, если надо...
Исходники интерпретаторов действительно валяются на каждом шагу ;D
Неактивен
Да нет, я этим заниматься не хочу...
У меня сейчас идеи как ТАДС настроить для русской грамматики, тобишь чтобы он понимал исключительно "взять верёвкУ", а не "взять верёвкА".
Просто я говорю о том что всё возможно...
Неактивен
Хорошо, если у вас получится. Да что там хорошо - будет просто замечательно! Только зачем так мучиться? Мне кажется, что проще (ну, может, не совсем "проще") написать свою платформу. Чувствую, сразу подумали: "Опять он про платформы заводит разговор". Конечно, тема эта жёвана-пережёвана, но это не значит, что её нужно бросать. Думаю, что дело должно быть завершено, и русская платформа всё же должна выйти. Может, это будет и не скоро...
Я не видел TADS, в смысле не знаю принципов его работы и языка, но мне кажется что тот же Inform может послужить базой для создания платформы. Я взял его за основу и начал работать. Всё это дело достаточно сложное, но я не спешу - лучше сделать качественее, чем быстрее. Кстати, я думаю над созданием полу-визуального редактора как временный этап (для компилятора нужно продвинуть другой проект, а продвигать его - дело муторное и большое, тем более, что редактор всё равно нужен, как я читал в других мессагах).
Неактивен
мне почему-то кажется, что TADS от Inform'а отличается примерно как Pascal от C. Наверное, потому что я с Inform и C++ знаком, а с TADS и Pascal - не очень. Но мне кажется, что возможности практически одинаковые, только каждый привык к своей системе, и считает ее быстрее, выше, сильнее... Пардон-с...
Неактивен
Информ, конечно, хорош, но парсер на русский язык перестроить будет очень проблематично. Это мне сказали даже опытные Информеры. ТАДС в этом отношении очень гибок и я знаю, что любую проблему рано или поздно я в нём решу.
Неактивен
Ух... Ох... Впервые посмотрел на TADS - вылитый C++, как, в общем, и Inform. К чему бы это?
Объясните мне, почему парсер TADS проще перевести, он же зашит в коды? А вот исходник парсера Inform'а на C++ перевести можно. И тогда уже от него плясать, как угодно. Кто возьмётся?
Неактивен
Он зашит в коды, но из кода торчат хвосты, и ты всегда можешь ПЕРЕПИСАТЬ ту, или иную функцию, а то и весь парсер. Так, у меня, переписаны сообщения об ошибках.
Ещё ТАДС позволяет вызывать внешние функции Си. Надо попробовать вызывать Генератор для создания склонений на ходу
Насчёт информа - тестил я свежий winfrotz2002, так в нём русский выводится и разрешено его вводить, но его вообще не узнаёт. Ни буквы. Раньше хоть направления света работали...
Неактивен
Люди, кто-нибудь, кто переводил Информ, читал этот мануал?
http://www.inform-fiction.org/manual/Chapter5.pdf
Здесь сказанно, что существует Zcharacter table. Все буквы занесённые в неё, будут занимать одну или две ячейки в памяти, а все незанесённые - четыре. Всего под каждое слово отводится максимум девять ячеек. Таким образом любое русское слово укорачивается до двух букв. Именно поэтому стороны света работают, а вещи и команды путаются.
У меня настроить её так и не получилось. Если записываю:
Zcharacter "абвгдеёжзийклмнопрстуфхчцш"
"щьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРС"
"0123456789!$&*():;.,<>Я";
(ещё и не все буквы умещаются!)
то компилятор жалуется что буквы не были заранее объявлены. Ключ -C5 не помогает.
Возможно здесь происходит путаница с ISO, Unicode.
Кто этим интересуется, то лучше всего спросить здесь:
http://groups.google.com/groups?group=r … nt-fiction
Неактивен
Ну вот, пришёл тот дикий день, в который никто не верил.
Inform понимает русский. Проблему решил WinFrotz2002 и
перекодировка всех файлов в unicode.
Windows Frotz 2002 можно взять здесь:
http://www.ifarchive.org/indexes/if-arc … frotz.html
Пример игры с компилятором, перекодировщиком и исходными файлами здесь:
http://rtads.h-type.com/inform.zip
Теперь WildWizrd может закончить LitlleLife. Только сначала нужно настроить парсер и отшлифовать все сообщения.
Надеюсь острота платформенного безумия теперь спадёт.
Успехов.
P.S. Не забудьте поблагодарить David'а Kinder'а.
Неактивен
Ну, это уже отчасти сделано. Осталось потратить недельку на перевод и несколько месяцев до приведения в кондицию. В любом случае, это будет быстрее, чем создать подобное самому.
А на меня не смотрите... Моя хата с краю
А поиграть в перевод curses хочется... :'(
Неактивен
to RealSonic
Увы, как я обнаружил, за всё это время только один человек скачал мои результаты (не ты ли?). Так что, если ты этого не сделаешь - никто не сделает.
Впрочем, я догадывался, что так получится. Иначе бы я побоялся помогать "конкуренту".
Неактивен