# Локализация

Модуль содержит систему локализации через ключи. Каждый ключ указывает на строку, которая может быть разной для каждого из языков. Языки игры подгружаются из папки 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 можно переключить текущий язык игры.
