Локализация

Модуль содержит систему локализации через ключи. Каждый ключ указывает на строку, которая может быть разной для каждого из языков. Языки игры подгружаются из папки Resources/Lang в виде txt файлов, где первая строка - заголовок, а остальные - “ключ=значение”. В заголовке указываются список параметров, параметры разделяются точкой с запятой. Файлы ищутся рекурсивно по всем вложенным папкам, и если будут 2 файла с одинаковым названием языка, то они соединятся вместе.

Последовательность параметров следующая:

  1. Название языка написанное на этом языке

  2. Языковой код на английском

  3. Номер языка в системе

  4. Индекс используемого шрифта

Использовать локализацию по ключу можно несколькими способами:

  1. У строки-ключа можно вызвать метод Localize, который переведет ключ на текущий язык

  2. Если в строке много ключей, то можно делать такую конструкцию: “[key1] some text [key2] some text [key3]”. После вызова Localize все ключи, заключенные в квадратные строчки будут переведены

  3. Если будете задавать текст компоненту TMP, то можно использовать метод SetLocalizedText, который установит нужный шрифт и вызовет Localize у текста

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

  5. Есть еще и LocalizeFontOnly, который меняет только шрифт при обновлении языка. Используем для текстов без ключей (которые ток с цифрами и знаками)

В LanguageManager есть список из доступных языков и текущий язык в качестве ObservableValue. Через метод SetLanguage можно переключить текущий язык игры.

Last updated