Поддерживаемый движок · GameMaker
Игра на GameMaker (более ранние выпуски продавались как GameMaker Studio) хранит скомпилированные данные в одном файле: data.win в Windows, game.unx в Linux, game.ios в macOS. RuneTranslate сам читает и записывает этот файл, без сторонних инструментов и sidecar. Он прослеживает каждую строку по байт-коду игры и проверяет, доходит ли она до функции отрисовки или вывода сообщений, поэтому текст, который видит игрок, предлагается к переводу, а ключи поиска, имена файлов и строки, с которыми игра сравнивает значения, остаются нетронутыми. Языковые файлы, которые игра поставляет рядом (JSON, CSV, INI / ключ=значение, диалоги Yarn и Chatterbox), и каталоги gettext .po / .mo тоже подхватываются, а разметка и управляющие коды прячутся за плейсхолдерами, чтобы провайдер не мог их сломать. Переводить можно любым провайдером: DeepL, LLM (OpenAI / Anthropic), бесплатным Google Translate или локальной моделью. При экспорте, если для перевода нужны символы, которых нет в шрифтах игры (кириллица, вьетнамский, китайский, японский, корейский, тайский, латиница с диакритикой), RuneTranslate добавляет эти глифы в собственные шрифты игры в подходящем стиле, а для японского, китайского и тайского переносит строки только там, где ширина текстового окна подтверждена данными игры. Каждый экспорт перечитывается и сверяется побайтно, прежде чем что-либо заменить. GameMaker добавлен недавно и проверен от начала до конца на реальных играх, сделанных на GameMaker Studio 1.4, GameMaker Studio 2.3 и выпусках GameMaker 2022 LTS, 2023 и 2024. Исключение составляют игры, скомпилированные с YYC (нативный код): их языковые файлы и шрифты можно перевести, но текст внутри кода недоступен. Исходный язык по умолчанию японский, настраивается для каждого проекта.
В играх на GameMaker имена персонажей, названия предметов и термины меню повторяются в файле данных и в языковых файлах. Сначала добавьте их в глоссарий, чтобы каждая строка передавала их одинаково. Глоссарий: основы →
Укажите RuneTranslate папку игры: ту, где лежит data.win в Windows, game.unx в Linux или game.ios в сборке для macOS. Определение распознаёт файл данных автоматически, а открытие игры ничего не меняет. Если игра пришла в виде установщика, сначала установите её. Игра GameMaker Studio 1.4, упакованная в один исполняемый файл, при экспорте распаковывается в обычную папку игры.
RuneTranslate сам читает файл данных, без сторонних инструментов и sidecar, и прослеживает каждую строку по байт-коду игры, проверяя, доходит ли она до функции отрисовки или вывода сообщений. Текст, который видит игрок, становится единицей перевода; ключи поиска, имена файлов и строки, с которыми игра сравнивает значения, остаются нетронутыми. Языковые файлы, которые игра поставляет рядом (JSON, CSV, INI / ключ=значение, диалоги Yarn и Chatterbox), и каталоги gettext .po / .mo тоже попадают в список.
Переводите через DeepL, LLM (OpenAI / Anthropic), бесплатный Google Translate или локальную модель. Разметка и управляющие коды прячутся за плейсхолдерами, чтобы провайдер не мог их переставить, удалить или перевести, а память переводов повторно использует одинаковые строки.
Экспортируйте переведённую копию в другую папку или на месте, что требуется некоторым играм из Steam. Если в переводе используются символы, которых нет в шрифтах игры, экспорт добавляет эти глифы в собственные шрифты игры в подходящем стиле. Для японского, китайского и тайского строки переносятся только там, где ширина текстового окна подтверждена данными игры, по правилам кинсоку. Для сборки под macOS или Linux записываются только изменённые файлы, которые вы копируете поверх установки.
Каждый экспорт перечитывается и сверяется побайтно, прежде чем что-либо заменить. Запустите переведённую игру и проверьте диалоги, меню и шрифты прямо в игре, прежде чем делиться ею.