ДвижкиРуководстваFAQPatreonDiscordСкачать
Войти
RuneTranslate · перевод игр с японского и 30+ языков
ДвижкиРуководстваСравнениеТекст на картинкахРедактор сохраненийРежим читовFAQСкачатьИзмененияTrustpilotPatreonDiscordYouTubeКонфиденциальностьУсловияКонтакты
Все движки

Поддерживаемый движок · Gettext (.po / .mo)

Полная — пересобрано и проверено в игре

Переводчик PO-файлов — перевод gettext-каталогов .po и .mo

Gettext — это то, как локализуется большинство неяпонских инди-игр: игры на Python и pygame, Solarus, игры на SDL и GTK, а также всё, что проходит через Poedit, Weblate или Crowdin. Строки лежат в папке locale в виде исходников .po и скомпилированных каталогов .mo. RuneTranslate находит их при создании проекта, переводит каждую строку и записывает рабочий .mo — именно тот файл, который читает запущенная игра.

Совет по глоссарию для этого движка

Gettext-каталоги — это в основном интерфейс: пункты меню, надписи на кнопках, подсказки и строки состояния, повторяющиеся на разных экранах. Добавьте свои существительные, названия предметов и ключевые глаголы в глоссарий один раз, и каждое вхождение переведётся одинаково — здесь это важнее, чем в диалогах, потому что меню, где в одном месте «Сохранить», а в другом «Записать», выглядит как ошибка. Глоссарий: основы →

Скачать RuneTranslate для Windows

Как перевести Gettext (.po / .mo)

  1. ШАГ 1

    Откройте папку игры

    Укажите RuneTranslate каталог игры — тот, где есть папка locale/, lang/ или i18n/. Определение ищет каталоги по фактическим байтам, а не по расширению, поэтому .mo, который на деле является 3D-сценой, будет проигнорирован. Папка с отдельными .po тоже подойдёт.

  2. ШАГ 2

    Проверьте найденное

    Диалог нового проекта показывает, сколько каталогов прочитано, сколько из них скомпилированных .mo против исходных .po, какие языки игра уже содержит и общее число строк — до того, как вы создадите проект.

  3. ШАГ 3

    Выберите язык и сервис

    Выберите целевой язык и сервис перевода: бесплатный Google или DeepL либо свой ключ DeepL, OpenAI, Claude или DeepSeek. Форматные плейсхолдеры — %s, %d, %(player)s, {count} — маскируются перед переводом и восстанавливаются после, чтобы сервис не смог их удалить или переписать.

  4. ШАГ 4

    Проверьте в редакторе

    Строки сгруппированы по файлам каталогов. Каждая запись сохраняет свой gettext-контекст (msgctxt) — то уточнение, которое разработчик написал именно для этой строки. Так видно, почему одно и то же слово встречается дважды, и каждое можно перевести правильно.

  5. ШАГ 5

    Экспортируйте играбельную сборку

    Экспорт создаёт полную копию игры с корректным каталогом locale/<ваш язык>/LC_MESSAGES/ И обновлённой версией каталога, который игра уже загружала, — чтобы перевод появился независимо от того, как игра выбирает язык. Записываются и .po, и скомпилированный .mo.

Поддерживает

  • Скомпилированные каталоги .mo — чтение и запись, оба порядка байтов, проверено на 43 реальных каталогах и 93 717 записях
  • Исходные файлы .po, включая формы множественного числа, контексты msgctxt, флаги и комментарии переводчика
  • Канонический макет locale/<язык>/LC_MESSAGES/<домен>.mo и плоские макеты вида lang/tr.po
  • Формы множественного числа подгоняются под целевой язык (английский 2 формы → русский 3 → японский 1) с перезаписью заголовка
  • Плейсхолдеры printf и фигурных скобок (%s, %d, %(player)s, {count}, {0}) маскируются на время перевода и восстанавливаются
  • Экспорт записывает и новый язык, и перезапись каталога, который игра уже загружает

Ограничения

  • Проверьте, что экспортированная игра запускается и читается корректно, прежде чем на неё полагаться
  • Переводится только текст, уже находящийся в каталоге: строки, которые разработчик не пропускал через gettext, в .po/.mo отсутствуют, и там их не найти
  • msgid считается исходным текстом — таков контракт gettext; каталог с английскими msgid и настоящим исходным языком в msgstr будет переведён с английского
  • Игры на движке с прямой поддержкой (Godot, Unity, Ren’Py…) обрабатываются этим движком, чтобы остальной их текст тоже был доступен
  • Непереведённые записи сохраняют перевод, который игра уже содержала, а не очищаются

Смежные материалы

Полное руководство по переводу Gettext (.po / .mo)
Читать руководство →

Смежные материалы

RuneTranslate vs Translator++
Читать руководство →

Другие поддерживаемые движки

RPG MakerRPG Maker XP/VX/AceRen'PyKirikiriWolf RPGTyranoBuilderElectron VNUnityBakinSRPG StudioNScripterGodotArtemisYU-RISAliceSoftUnrealLiveMaker