Ура! Удалось найти Яна Финли -автора Kaged, Babel и других замечательных игр. Он дал разрешение на перевод и адаптацию своих игр. Увы, исходников нет, но игры нормально декомпилируются. В принципе, в коде все довольно понятно. Однако, игры большие и для перевода не помешает помощь. Жду добровольцев
Подскажите, какую из игр перевести первой. Голосование здесь:
http://rtads.h-type.com/forum/viewtopic.php?t=92
Неактивен
У этого проекта морально устаревшая кодовая база, в частности, там не интегрирован генератор падежных форм (он появился через несколько лет после заморозки перевода), а также на современных версиях библиотек игра не компилируется, выдавая ошибку на двойное использование "привет".
Я бы советовал сделать две вещи:
Во-первых, подключить генератор падежных форм, чтобы не писать руками все падежные формы для всех названий объектов, а только именительный падеж с флагами. Для этого надо добавить ещё одну директиву предпроцессора и подключить ещё одну библиотеку (комментариями помечены строки, которые надо вставить в начале файла):
#define USE_HTML_STATUS #define USE_HTML_PROMPT #define GENERATOR_INCLUDED // Первая строка, которую надо добавить #include <advr.t> #include <gameinfo.t> #include <stdr.t> #include <generator.t> // Вторая строка, которую надо добавить #include <errorru.t> #include <extendr.t>
После этого, например, вместо
sdesc = "большой стол" rdesc = "большого стола" ddesc = "большому столу" vdesc = "большой стол" tdesc = "большим столом" pdesc = "большом столе" noun = 'стол' 'стола' 'столу' 'столом' 'столе' 'столу#d' 'столом#t' 'поверхность' 'поверхности' 'поверхностью' 'поверхности#d' 'поверхностью#t' 'покрытие' 'покрытия' 'покрытию' 'покрытием' 'покрытии' 'покрытию#d' 'покрытием#t' adjective = 'большой' 'большого' 'большому' 'большому#d' 'большим' 'большим#t' 'большом' 'стальной' 'стального' 'стальному' 'стальному#d' 'стальным' 'стальным#t' 'стальном' 'фанерный' 'фанерного' 'фанерному' 'фанерному#d' 'фанерным' 'фанерным#t' 'фанерном' 'начальника' 'начальника#r'
можно будет писать просто
desc = 'большой/1мп стол/1м' noun = 'поверхность/1ж' 'покрытие/1с' adjective = 'стальной/1мп' 'фанерный/1мп' 'начальника' 'начальника#r'
То, что уже сделано в переводе по старинке, можно не трогать, оно по-прежнему будет работать, а вот ещё непереведённые вещи можно будет описывать в такой упрощённой форме. О принципах и флагах генератора падежных форм RTADS можно прочитать в разделе "Использование генератора падежных форм" первой главы руководства.
Во-вторых, ошибку "warning: same verb 'привет' defined for two objects", возникающую при компиляции на современных библиотеках RTADS, проще всего починить вот такой строкой кода
replace helloVerb: object;
Её надо вставить до конфликтующего объекта, а именно: до строки
modify tellVerb
Неактивен
Sir John написал:
Обновленный файл выложил выше.
Если есть смысл - поработаю с переводом еще.
Спасибо за работу. Конечно, желательно, чтобы это посмотрел Андрей, как основной координатор перевода. Не удаляйте файл с Яндекс.Диска, а то у нас тут многие через месяцы и годы только появляются, ну или прикрепите файл напрямую к посту, тогда он сохранится на форуме.
Sir John написал:
Сюжет интересный, но html tads, из которого я запускаю, мне не нравится, как выглядит. Глаза устают сильно.
В HTML TADS в меню "Вид" (View) можно настроить шрифты и текст, а в меню "Темы" (Themes ) выбрать разные стили интерфейса. Кроме того, можно попробовать альтернативный интерпретатор QTads. Ну а можно и вовсе в командной строке запустить.
Вот список игр на TADS 2, для которых доступны исходные коды. Если ещё остался энтузиазм, то можете выбрать что-то относительно компактное и перевести игру целиком. В рамках КРИЛ есть отдельный конкурс для переводчиков игр, так что при желании можете подгадать к нему.
В TADS Toolchain есть функциональность извлечения строковых литералов из исходного кода, которая может помочь переводу, хотя и надо быть внимательным, чтобы ничего не сломать при экспорте и импорте. Однако, в любом случае, там можно извлечь весь текст и просто оценить, остались ли пропущенные англоязычные строки.
Неактивен