RuneTranslate теперь переводит игры на Godot
RuneTranslate теперь переводит игры на Godot 3.x / 4.x на английский и более чем 30 языков: открывает .pck (даже если он встроен в .exe), декомпилирует скомпилированный GDScript и конвертирует бинарные сцены с помощью встроенного компонента GDRE Tools, а затем выводит список диалогов и текста интерфейса. Укажите папку игры, дайте определить движок, переведите и экспортируйте перепакованную запускаемую копию. Только что добавлено, по мере возможностей — проверьте, что экспортированная сборка запускается.
RuneTranslate теперь переводит игры на Godot — бесплатном движке с открытым исходным кодом, который незаметно стал одним из самых популярных способов выпускать инди- и додзин-игры. Исторически Godot был одним из самых сложных движков для перевода снаружи, потому что выпущенная игра на Godot — это запечатанная коробка: всё лежит в одном архиве .pck (нередко приклеенном к концу самого .exe), скрипты скомпилированы в байткод GDScript, а сцены сохранены в бинарном виде. RuneTranslate открывает эту коробку, читает текст и упаковывает ваш перевод обратно.
Это недавно добавленный движок, поэтому прежде всего: если вы укажете RuneTranslate на игру на Godot, а он её не определит, не откроет или экспортированная копия не запустится, сообщите нам. Подробнее об этом в конце.
Что такое Godot на самом деле
Godot — это бесплатный игровой движок с открытым исходным кодом под лицензией MIT (первый публичный выпуск в 2014 году), популярность которого за последние несколько лет резко выросла: сегодня это распространённый выбор для 2D- и 3D-инди-игр, и на нём выходит всё большая доля японских додзин-игр. Игры обычно пишут на GDScript — собственном языке Godot, похожем на Python, — и выстраивают в виде сцен: деревьев узлов (тут метка, там кнопка, вот диалоговое окно), сохранённых как ресурсы.
Когда игру на Godot экспортируют для выпуска, всё это — скрипты, сцены, изображения, звук — собирается в один файл-пакет .pck. Пакет лежит либо рядом с исполняемым файлом, либо, что очень часто, дописан прямо в конец `.exe`, так что в папке словно нет ничего, кроме единственного исполняемого файла игры. Именно такая упаковка и делает игры на Godot на вид непроницаемыми.
Почему игры на Godot было трудно переводить
В отличие от движка на основе скриптов, такого как Ren'Py, выпущенная игра на Godot почти ничего не показывает в виде обычного текста:
- Всё находится внутри `.pck`. Нет отдельных файлов скриптов или текста, которые можно было бы отредактировать, — а когда пакет встроен в
.exe, нет даже видимого.pck, на который можно навести инструмент. - Скрипты скомпилированы. GDScript поставляется в виде скомпилированного байткода (
.gdc) — а в современном Godot 4 этот байткод ещё и сжат, — так что диалоги, зашитые в код, нельзя ни найти через grep, ни открыть в текстовом редакторе. - Сцены бинарные. Метки интерфейса и текст меню лежат в файлах сцен, сохранённых в бинарном формате ресурсов Godot (
.scn), а не в читаемом.tscn, который вы видите в редакторе. - Большинство игр не использует файл перевода. У Godot есть полноценная система локализации (CSV /
.po→.translation), но множество игр — особенно небольшие додзин-тайтлы — никогда её не применяют и просто жёстко прописывают японский прямо в скриптах и сценах. Так что аккуратной таблицы строк для перевода нет.
Что RuneTranslate делает теперь
RuneTranslate относится к Godot как к полноценному движку и восстанавливает для вас читаемый проект. Под капотом он включает копию GDRE Tools (открытого набора инструментов для обратной разработки Godot) и использует её, чтобы:
- Распаковать `.pck` — отдельный,
data.pckили пакет, встроенный в конец.exe(RuneTranslate автоматически распознаёт сигнатуру встроенного пакета). - Декомпилировать скомпилированный GDScript (
.gdc→.gd), чтобы диалоги и повествование в коде снова стали читаемыми. - Конвертировать бинарные сцены (
.scn→.tscn), чтобы из них можно было извлечь метки и текст интерфейса.
Затем он сканирует восстановленный проект и выводит список всех переводимых строк — диалогов из скриптов и текста сцен/интерфейса — сгруппированных по файлам в редакторе, при этом разметка движка скрыта за плейсхолдерами, чтобы провайдер её не испортил. При экспорте он вставляет ваши переводы обратно в восстановленный исходник и заново упаковывает запускаемую копию игры (подробнее о том, как именно, — ниже).
Что вам понадобится
- RuneTranslate для Windows — бесплатно, все движки и провайдеры разблокированы.
- Папка с игрой на Godot — обычно только
.exeигры (с встроенным пакетом) или.exeплюс.pck/data.pckрядом. Поддерживаются и Godot 3.x, и 4.x. - Язык перевода — английский, испанский, французский, немецкий, португальский, русский, китайский, итальянский, турецкий, вьетнамский и ещё более 20.
- Один переводческий провайдер. Бесплатный Google Translate работает из коробки; у DeepL есть бесплатный тариф; OpenAI, Anthropic, локальная модель (Ollama / LM Studio) и любой API, совместимый с OpenAI, — со своим ключом. В играх на Godot обычно много диалогов, поэтому LLM (OpenAI / Anthropic) или DeepL лучше справляются с сюжетным текстом.
Шаг 1. Откройте папку с игрой
Запустите RuneTranslate, нажмите Новый проект и укажите каталог игры на Godot — папку с .exe игры (и .pck, если он идёт отдельно). Определение движка происходит автоматически: он распознаёт сигнатуру встроенного пакета в конце исполняемого файла, отдельный .pck или проект Godot. Ваши исходные файлы никогда не изменяются.
Шаг 2. Распакуйте и восстановите проект
RuneTranslate запускает встроенный компонент GDRE Tools, чтобы распаковать пакет, декомпилировать скомпилированный GDScript и преобразовать бинарные сцены в читаемый исходник. Затем он сканирует этот восстановленный проект и выводит список всех переводимых строк — диалогов и повествования из скриптов, а также меток и текста интерфейса из сцен — сгруппированных по файлам. Пути к ресурсам, имена узлов и другие идентификаторы кода отфильтровываются, чтобы вы переводили только те строки, которые реально видит игрок.
Шаг 3. Переведите
Выберите провайдера и запустите. Для сюжетной игры LLM (OpenAI / Anthropic) лучше передаёт голос персонажей, DeepL быстро и чисто справляется с повествованием, а бесплатный Google Translate годится для коротких строк интерфейса. В играх на Godot диалоги часто хранятся длинными массивами строк внутри одного скрипта — «базой данных сюжета», — так что одно и то же имя персонажа или название места встречается сотни раз. Заранее внесите актёрский состав и ключевые термины в глоссарий, чтобы они везде отображались одинаково; см. Глоссарий 101. Необязательный проход ИИ-редактором подтягивает деревянные формулировки, которые обычно оставляет машинный перевод.
Шаг 4. Экспортируйте переведённую сборку
Нажмите Экспорт. Поскольку исходные скрипты — это скомпилированный байткод, RuneTranslate применяет подход переопределения исходника: он записывает ваши переводы в восстановленный исходник .gd / .tscn, удаляет из пакета скомпилированный .gdc / бинарный .scn, чтобы движок откатился к отдельному переведённому исходнику, и заново упаковывает свежий .pck — снова встраивая его в копию .exe, если пакет был встроенным. Ваша исходная игра остаётся нетронутой; вы получаете отдельную запускаемую переведённую копию.
Шаг 5. Убедитесь, что копия запускается
Экспортированная сборка полагается на то, что среда выполнения Godot компилирует отдельный переведённый исходник скрипта при загрузке, поэтому — как и с любым новым движком — запустите экспортированную игру один раз и убедитесь, что диалоги и меню показываются на вашем языке, прежде чем ею делиться. Если какой-то скрипт не загружается, это как раз тот отчёт, который помогает нам укрепить поддержку (см. ниже).
Известные ограничения
- Недавно добавлено и по мере возможностей. Прежде чем распространять, убедитесь, что экспортированная игра запускается и читается корректно.
- Зашифрованные пакеты. Некоторые игры поставляют
.pck, зашифрованный ключом, зашитым в бинарник; такие пока не открываются. - Игры на C# / .NET (Mono). RuneTranslate ориентирован на GDScript; текст, скомпилированный в логику игры на Godot на C#, вне области поддержки.
- Текст, нарисованный поверх изображений. Заголовок или логотип, отрисованный как графика, — это пиксели, а не строки; этим занимается перевод текста на изображениях, а не извлечение скриптов.
- Нелатинские языки перевода зависят от того, поставляется ли с игрой шрифт, способный их отобразить.
Это совсем новое — расскажите, что ломается
Поддержка Godot — свежее добавление. Godot охватывает множество версий движка и способов упаковки, и мы видели не все. Поэтому если вы укажете RuneTranslate на игру на Godot, а он её не определит, не распакует или экспортирует что-то, что не запускается, сообщите об этом — название игры, её версия Godot и способ упаковки (встроенный пакет или отдельный .pck) — это как раз то, что помогает нам укрепить поддержку быстрее всего.
Скачайте RuneTranslate, укажите ему ту самую игру на Godot, которую вы давно хотели прочитать, и попробуйте. Ещё об одном современном движке — в руководстве по Unity далее.
Готовы попробовать RuneTranslate?
Бесплатный тариф открывает все движки и всех провайдеров перевода. Supporter ($3/mo) открывает полную скорость.
Скачать для Windows