reckfellENGINE

Локализация: от каталога до интерфейса

Первый перевод, выбор CSV или PO, смена языка, fallback и проверка интерфейса перед выпуском.

На этой странице

Локализация игры

Перевод текста, выбор языка, отображение шрифтов и локализованные ресурсы — отдельные части работы. Этот раздел описывает язык игры. Переключатель языка самого портала не меняет настройки вашего проекта.

Получить первый перевод

  1. Подготовьте каталог RU/EN. Для общей таблицы используйте CSV; для отдельных языковых файлов, контекстов и форм множественного числа — PO. В руководствах приведены готовые входные файлы.
  2. Импортируйте и зарегистрируйте переводы в Project Settings → Localization → Translations. Для CSV регистрируются созданные .translation, для PO — сам .po. Одна загрузка ресурса через ResourceLoader не добавляет его в поиск переводов. Подробности — подключение каталогов.
  3. Для проверки используйте ключ PLAY из CSV-примера. После TranslationServer.SetLocale("en") вызов TranslationServer.Translate("PLAY").ToString() даёт Play, после SetLocale("ru") — Играть.
  4. У статического Label задайте ключ в Text и разрешите автоматический перевод. Text сохраняет исходный ключ; отображаемый текст меняется отдельно. Для вычисляемой надписи переводите целый шаблон и пересчитывайте её при NotificationTranslationChanged. Полный пример — локализованный интерфейс.

Не регистрируйте несколько каталогов с одним сочетанием ключа, контекста и языка, рассчитывая на случайный порядок перезаписи. Выберите устойчивые ключи и сохраняйте параметры форматирования во всех переводах.

Выбрать следующий шаг

ЗадачаРуководство и результат
Переводить вместе с командой в таблицеCSV: заголовки языков, разделители, кавычки, контексты и множественное число
Передавать переводчикам отдельные каталогиPO/gettext: заголовок Language, контекст, формы и пропускаемые записи
Выбрать язык игрокаКоды локалей: список реально поставляемых языков, регион и явно заданный резервный язык
Обновлять интерфейс при смене языкаИнтернационализация игры: статический и вычисляемый текст, ресурсы, шрифты и направления интерфейса
Найти обрезанные или непереводимые строкиПсевдолокализация: расширение текста и ограничения C#-плейсхолдеров

Смена языка и недостающие сообщения

Показывайте игроку только языки, каталоги которых поставляются с игрой. Распознаваемый движком код не означает наличие перевода. TranslationServer.SetLocale() меняет локаль текущего процесса и уведомляет интерфейс; предпочтение игрока нужно сохранять отдельно, например через настройки и сохранения.

Задайте резервный язык в internationalization/locale/fallback и проверьте отсутствующую запись. Если сообщения нет ни в выбранном, ни в резервном каталоге, результатом может стать исходный ключ. Для текстового и ресурсного fallback правила различаются: отсутствие подходящей локализованной замены ресурса возвращает исходный ресурс, а не автоматически вариант текстового резервного языка.

Множественное число выбирает шаблон, а не подставляет число: после TranslatePlural выполняйте форматирование полного сообщения. Не собирайте фразу из отдельных переведённых слов. Пользовательские имена и чат не должны автоматически становиться ключами перевода.

Проверить результат и экспорт

ПроверкаЧто должно получиться
Сменить en → ru при открытом интерфейсеСтатические надписи обновляются; вычисляемые пересчитаны вашим обработчиком
Оставить один перевод пустымИспользуется предусмотренный резервный текст; полностью неизвестный ключ виден как ключ
Показать пользовательское имя, совпадающее с ключомОно остаётся пользовательским текстом при отключённом автопереводе
Проверить длинную строку в минимальном окнеТекст помещается или переносится; управляющие элементы остаются доступны
Проверить нужные символы и RTLРеальный шрифт покрывает текст; направление и расположение элементов проверены отдельно
Запустить экспортированную игруКаталоги и локализованные ресурсы присутствуют, переключение работает вне редактора

Псевдолокализация не заменяет проверку реальных языков, CJK-шрифтов, арабского shaping или RTL. Изменение Label.Language не выбирает каталог перевода; изменение Control.LayoutDirection не меняет язык сообщений. Удаление ресурсов профилем экспорта тоже проверяйте отдельно.

Примеры в связанных руководствах проверены на установленном Windows-runtime. Для этого входного маршрута повторно использованы только указанные в техническом отчёте проверки каталогов, переключения, fallback и форматов. Визуальное покрытие шрифтов, RTL-вёрстка и экспорт на все платформы этим отчётом не подтверждены.

Документация Reckfell EngineНаверх ↑
БЫСТРЫЙ ПЕРЕХОДНачало работыEntity и иерархияC# & .NET 10Сцены и префабы
Руководства и полный API Reckfell K
reckfellENGINE
RECKFELL ACCOUNT

Вход в аккаунт

Войдите в аккаунт Reckfell.

Один аккаунт для всей платформы Reckfell.