Как перевести игру на TyranoBuilder / TyranoScript на английский
Пошаговое руководство по переводу визуальных новелл на TyranoBuilder / TyranoScript на английский с помощью RuneTranslate — извлечение скриптов data/scenario/*.ks, маскировка тегов KAG, перевод отображаемых имён персонажей и экспорт играбельной сборки на HTML5 или Electron.
TyranoBuilder и лежащий в его основе движок TyranoScript питают обширный каталог независимых японских визуальных новелл — это веб-технологичная (HTML5 / JavaScript) альтернатива Kirikiri и Ren'Py, и он поставляет игры как в виде автономных папок HTML5, так и в виде исполняемых файлов, упакованных в Electron. Его сценарии используют тот же синтаксис скриптов .ks в стиле KAG, что и Kirikiri, благодаря чему до текста легко добраться, как только вы знаете, где он находится. Это руководство проходит перевод игры на TyranoBuilder от начала до конца с помощью RuneTranslate, включая специфичную для движка часть, которую упускает большинство инструментов: отображаемые имена персонажей.
Что вам понадобится
- RuneTranslate для Windows — бесплатно, все движки и провайдеры разблокированы.
- Игра на TyranoBuilder. Либо автономная папка HTML5 (отдельные каталоги
data/иtyrano/в корне), либо сборка, упакованная в Electron (resources/app.asar, содержащийtyrano/tyrano.jsиdata/scenario/*.ks). RuneTranslate распознаёт обе. - Целевой язык — английский, испанский, французский, немецкий, португальский, русский, китайский, итальянский, турецкий, вьетнамский и ещё более 20.
- Один провайдер перевода. В визуальных новеллах много диалогов, поэтому LLM (OpenAI / Anthropic) или DeepL обычно читаются лучше; бесплатный Google Translate работает сразу из коробки.
Шаг 1: Откройте папку игры
Запустите RuneTranslate, нажмите Новый проект и укажите каталог игры (или папку с .exe для сборок, упакованных в Electron). Определение движка запускается автоматически и распознаёт TyranoBuilder по его среде выполнения tyrano/ и скриптам data/scenario/. Для сборок на Electron RuneTranslate читает app.asar напрямую — вам ничего не нужно распаковывать. Ваша оригинальная игра никогда не изменяется.
Шаг 2: Как извлекаются строки
RuneTranslate вытягивает переводимый текст отовсюду, где его хранит TyranoBuilder:
- Скрипты сценария — каждый файл
data/scenario/**/*.ks, включая_preview.ksи зеркалаsystem/_*.ks, на которые полагаются игры с зашифрованными сборками. - Интерфейс и конфигурация — строки интерфейса из
tyrano/lang.jsиdata/system/Config.tjs. - Отображаемые имена персонажей — метки говорящего, показываемые над диалогом (см. следующий раздел).
Встроенные теги KAG — переносы строк [r], ожидания клика [p], разрывы страниц [改ページ], [font color=...] и другие теги с японскими именами — маскируются числовыми заполнителями [[U#]] до того, как что-либо попадёт к провайдеру, а затем восстанавливаются при экспорте, так что форматирование движка остаётся нетронутым. Двоичные или зашифрованные файлы .ks определяются проверкой на UTF-8 и никогда не перезаписываются.
Шаг 3: Имена персонажей — специфичная для Tyrano часть
Сценарии TyranoBuilder часто обращаются к говорящему через встроенное сокращение вроде [yuki] — это ID персонажа, а не отображаемый текст. RuneTranslate никогда не переписывает эти встроенные ссылки (их переписывание сломало бы поиск персонажей движком и обрушило бы сцену). Вместо этого он переводит отображаемое имя персонажа и вставляет корректную запись [chara_new name=... jname=...] в data/system/chara_define.ks при экспорте. Результат: имя, показываемое на экране, переведено, тогда как ID, который скрипт использует для поиска этого персонажа, остаётся нетронутым.
Шаг 4: Переведите и проверьте
Выберите провайдера и запустите. OpenAI GPT-4o или Anthropic Claude читаются лучше всего для голоса персонажей и стилизованной речи; DeepL быстр и чист для повествования; бесплатный Google Translate покрывает меню. Сначала составьте глоссарий для вашего актёрского состава и повторяющихся терминов, чтобы имена отображались одинаково на каждой ветке — см. Глоссарий 101. Каждая строка появляется в редакторе рядом с оригиналом; правьте прямо на месте (сохраняется при потере фокуса или по Ctrl+Enter), используйте поиск и замену или запустите необязательный ИИ-рефайнер для контекстной вычитки во втором проходе. RuneTranslate на бесплатном уровне работает с ограничением ~в 3–4× медленнее платного — при том же качестве вывода.
Шаг 5: Экспортируйте играбельную сборку
Нажмите Экспорт. Для автономных HTML5-игр RuneTranslate записывает переведённые скрипты .ks, lang.js, конфигурацию и вставленный chara_define.ks в копию игры. Для игр, упакованных в Electron, он переупаковывает изменённый app.asar. В любом случае на выходе получается полная работоспособная копия в выбранном вами месте — запустите её, и она будет играться на вашем целевом языке.
Известные ограничения
- Зашифрованные файлы
.ks(определяемые как не-UTF-8) остаются нетронутыми — если сборка шифрует свои сценарии, эти строки не переведутся. - Текст на изображениях (логотипы, нарисованный от руки интерфейс, подписи к CG) не переводится — это вне рамок машинного перевода.
- Пользовательские плагины, которые собирают строки диалогов во время выполнения, могут потребовать быстрой ручной правки в редакторе.
Почему это проще, чем по-старому
Ручной путь означал распаковку app.asar, поиск каждого файла .ks (включая легко упускаемые системные зеркала), перевод в обход тегов KAG вручную, разбор вставки имён персонажей, чтобы метки говорящего действительно менялись, а затем переупаковку asar без его повреждения. RuneTranslate сворачивает всю эту цепочку в несколько кликов, с открытым редактором, чтобы формулировки контролировали вы.
Смотрите страницу движка TyranoBuilder для полного списка возможностей, прочтите руководство по Kirikiri для родственного движка KAG или скачайте RuneTranslate и попробуйте его на настоящей игре.
Готовы попробовать RuneTranslate?
Бесплатный тариф открывает все движки и всех провайдеров перевода. Supporter ($3/mo) открывает полную скорость.
Скачать для Windows