reckfellENGINE

Подключение перевода игры

Импорт RU/EN, регистрация ресурсов, выбор локали и резервный язык.

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

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

Подключить русский и английский

  1. Создайте в проекте Locale/ui.csv в кодировке UTF-8. Полная таблица приведена ниже.
  2. Дождитесь импорта в редакторе. Рядом с CSV появятся ресурсы Locale/ui.en.translation и Locale/ui.ru.translation.
  3. Откройте Project Settings → Localization → Translations и добавьте оба созданных ресурса .translation. Добавляйте ресурсы, а не ui.csv.
  4. Установите internationalization/locale/fallback в en. Укажите PLAY в свойстве Text у Label; оставьте автоматический перевод включённым у него и в родительской иерархии.
  5. Запустите проект. Вызовите TranslationServer.SetLocale("ru"), затем TranslationServer.SetLocale("en"). Текст должен меняться между Играть и Play.
Текст
keys,en,ru
PLAY,Play,Играть
ONLY_EN,English fallback,

Эквивалентная настройка project.reckfell: при закрытом редакторе объедините этот раздел с существующим содержимым файла.

Конфигурация
[internationalization]
locale/fallback="en"
locale/translations=PackedStringArray("asset://Locale/ui.en.translation", "asset://Locale/ui.ru.translation")

Не заменяйте остальное содержимое project.reckfell. Дополнительные ресурсы перевода добавляйте в тот же массив translations.

Выбрать язык явно

C#
TranslationServer.SetLocale("ru");
string play = TranslationServer.Translate("PLAY").ToString();

Это инструкции внутри метода. Смена локали выбирает готовый текст: она не переводит произвольные строки и не сохраняет выбор игрока. Сохраните выбранную локаль вместе с другими настройками и применяйте при запуске игры.

Обозначение локали нормализуется: ru-RU превращается в ru_RU. Запрос ru_RU может использовать ресурс ru. Не рассчитывайте на порядок выбора между несколькими ресурсами с одинаковым ключом для одной локали: у сообщения должен быть один источник.

Если перевода нет

Поиск сначала использует выбранную локаль, затем резервную. Если ни в одной нет непустого перевода, Translate возвращает ключ.

Вызов при локали ruРезультат с таблицей выше
Translate("PLAY")Играть
Translate("ONLY_EN")English fallback
Translate("UNKNOWN")UNKNOWN
Translate("play")play: регистр ключей учитывается

Пустая ячейка не означает «показать пустой текст»: сообщение остаётся без перевода для этой локали. Если элемент нужно скрыть, задайте отдельное правило видимости.

Подключение во время игры

Регистрация в настройках проекта загружает ресурсы при запуске. Для необязательного языкового пакета вызовите ResourceLoader.Load<Translation>(path), проверьте результат и передайте ресурс в TranslationServer.AddTranslation. Сама загрузка ресурс не регистрирует. RemoveTranslation прекращает использовать переданный ресурс.

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

Диагностика

СимптомЧто проверить
На экране буквально PLAYРесурс зарегистрирован; локаль подходит; ключ и контекст совпадают точно
Часть русского текста стала английскойРусская ячейка пуста или отсутствует, а резервная локаль — en
Локаль поменялась, вычисленная строка — нетПересчитывайте её при NotificationTranslationChanged; полный пример Label есть в руководстве по CSV
Обычный Label не переводитсяAutoTranslateMode не отключён у элемента или предка; в Text сохранён ключ
Вместо букв квадраты или пропускиПокрытие шрифта, резервные шрифты и вёрстку: успешный поиск строки не доказывает правильное отображение символов

В разделе таблиц CSV разобраны кавычки, контекст, множественные формы и полный пример C#. Раздел каталогов PO подходит для отдельного файла gettext на каждый язык.

Граница проверки

В Reckfell 1.0.0 проверены настоящий импорт CSV, регистрация при запуске проекта, нормализация локали, региональный запрос, отсутствующие ключи, резервный английский и подключение/отключение ресурсов. Пример Label проверен через уведомления о смене локали. Названия пунктов редактора сверены с исходниками; работа мышью, отображение шрифтов, RTL и экспорт на платформы этими проверками не подтверждаются.

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

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

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

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