Godot Engine

Godot Engine

评价数不足
Как сделать локализацию - переключение с одного языка на другой
由 timeinvader 制作
Гайд о том, как добавить в игру переключение между языками
   
奖励
收藏
已收藏
取消收藏
Текстовая локализация
1. Создайте файл в формате .csv
Для удобной работы с этим форматом файла вам потребуется дополнительно установить редактор таблиц, такие как Microsoft Excel, LibreOffice Calc и любые другие удобные вам редакторы.
Файлы CSV должны быть сохранены в кодировке UTF-8.
Имя CSV-файла не влияет - можно выбрать любое.

2. Откройте файл и заполните первую строку
В клетку A1 - вбейте keys, в A2 и последующие - названия используемых вами языков. Для названия языков необходимо написать локаль. Для русского языка используется локаль ru, для английского - en.
Полный список локалей вы можете узнать в документации Godot
тык[docs.godotengine.org]

3. Заполните таблицу.
Ключ представляет из себя короткое описание фразы.
Вы можете использовать любые ключи, например цифры, слова и т.д. Однако, стремитесь делать свои ключи понятными для себя, к примеру для фразы приветствия используйте ключ "greet", а для фразы прощания - "bye" - так будет проще работать.
Обратите внимание, что ключи чувствительны к регистру - KEY, key и KeY будут восприниматься, как разные ключи.
В колонки под локалями введите тот текст, который вы хотите отображать.


4. Альтернатива табличному редактору
Работать с файлом CSV можно из любого тектового редактора, как например встроенный в систему Блокнот.
В таком случае структура файла должна быть такова:
  • keys,локаль1,локаль2
  • KEY,перевод,перевод
  • KEY,перевод,перевод
  • KEY,перевод,перевод
Важно уточнить, что после запятых не должно быть пробелов - CSV чувствителен к формату.


5. Импортируйте полученный файл в папку проекта Godot.
Путь к вашему проекту указан на стартовой странице под его названием
Затем, в проекте Godot выберите Проект - Настройки проекта - Локализация - Добавить. Выберите свой файл .csv. Если всё сделали правильно, то ваши переводы появятся в списке.


6. Получение языка, используемого пользователем в системе
Используйте функцию OS.get_locale_language() для получения языка, используемого пользователем в системе. Эта функция возвращает локаль языка в виде двухбуквенного кода. К примеру, если у пользователя выбран английский язык в системе, то функция вернёт en.
К примеру:
var language = OS.get_locale_language()
Используйте OS.get_locale() если вам нужно получить полную локаль системы - эта функция вернёт полную кодировку, которая включает так же вариацию языка(Например, в случае с британским английским в системе функция вернёт en_GB, в случае с американским - en_US, русского - ru_RU).
var language = OS.get_locale()

7. Смена языка
Используйте TranslationServer.set_locale("локаль языка")
К примеру, для установки русского языка:
TranslationServer.set_locale("ru")
или, если вы храните текущую локаль в виде переменной:
TranslationServer.set_locale(language)

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


При использовании ключа в коде, аналогично обычному тексту его необходимо выделить кавычками:
var_name.text = "KEY1"
либо используйте функцию tr()
var_name.text = tr("KEY2")

9. Полезные функции при работе с локализацией
  • TranslationServer.get_locale() - возвращает текущую локаль, установленную в самой игре (то есть ту, что активна в данный момент)
  • TranslationServer.get_locale_name(String) - возвращает язык локали и его вариант. К примеру TranslationServer.get_locale_name("en_US") вернёт "English, United States of America"
  • TranslationServer.compare_locales(String, String) - сравнивает две локализации и возвращает оценку сходства от 0(нет совпадений) до 10(полное совпадение)
Локализация изображений
Во вкладке Локализация перейдите во вкладку Переназначение.


Во вкладку Ресурсы добавьте оригинал вашей картинки(к пр. вариант для английского языка, он будет загружаться по умолчанию при отсутствии отдельно выделенного под локаль варианта).
Выделите в списке загруженное изображение и перейдите чуть ниже в Переназначения по локали, нажмите кнопку добавить и загрузите локализованный вариант картинки. Выберите локаль, в которой необходимо данную картинку загружать.


Готово! Теперь, при смене языка будет меняться и изображение.