Содержание
Localization
Если вам нужно брать просто поле языка от SDK платформы — присмотритесь к модулю EnvirData.
Более расширенный вариант — модуль Localization. Он содержит следующие функции:
Опция Set Language Mod в настройках модуля — позволяет выбрать как менять язык игры при её запуске из трёх вариантов:
- Менять язык игры в соответствии с тем, который предлагает SDK платформы — только при первом запуске игры.
- При каждом запуске.
- Не запрашивать язык у SDK платформы.
В PluginYG2 используется язык в формате кода страны. Пример: "ru", "en", "tr". В таком же формате передаётся язык из платформы Яндекс Игры.
YG2.lang
— язык, который устанавливается в соответствии с SDK платформы при запуске игры. Данное поле может меняться при переключении языка внутри игры.
YG2.SwitchLanguage(string язык)
— метод переключение языка. Его можно выполнять в меню игры при нажатии на кнопку выбора языка. Необходимо передать параметр language
— этот язык будет установлен в игре.
После установки языка будет вызвано событие onSwitchLang
передающее string language
.
Ещё есть событие onCorrectLang
также передающее string language
. Оно вызывается при запросе языка платформы, то есть при запуске игры. Его можно использовать для того, чтобы адаптировать язык под свои нужды. Например, изменить код страны на прописной формат языка для какого-нибудь ассета локализации.
Auto Translate Langs
Готовое полное решение для локализации, с автоматическим переводом текстов с помощью API Google Translate. Модуль полностью функциональный, он мощный и может сэкономит много времени. Но данный модуль больше не будет поддерживаться, потому что он перекочевал из первых версий плагина и имеет проблемы. Планируется сделать новый такой модуль под замену.
Если в проекте присутствует модуль AutoTranslateLangs или Storage, то в настройках плагина появится кнопка для импорта пакета Newtonsoft.NET Json. Он необходим для автоматического перевода с помощью API Google Translate.
Для начала выберите языки, которые будут присутствовать в игре. Для этого в настройках модуля AutoTranslateLangs найдите массив Languages и выберите языки игры.
За перевод текста отвечает компонент LanguageYG. Он должен висеть на объекте с компонентом Text или с компонентами TextMeshPro. Если компонент текста на объекте не будет найден, то скрипт предложит их создать.
Есть инструмент для перевода всех текстов на всей сцене. Он находится в верхней вкладке YG2 → Auto Translate Langs → Auto Localization Masse.
Шрифты
В настройках модуля, в опции Fonts есть массивы шрифтов для каждого языка и дефолтный массив. Если вы заполните, допустим, нулевой элемент массива, то в игре шрифты заменятся на тот, что вы указали. Вы также можете закинуть шрифт, допустим, в первый элемент массива. Тогда, если в компоненте LanguagesYG вы укажите поле Font Index равное одному, то для этого текста будет устанавливаться шрифт из первого элемента массива.
В компоненте LanguagesYG есть поле Unique Font (уникальный шрифт). Если вы перетащите туда какой-либо шрифт, то данный текст всегда будет грузиться с указанным шрифтом.
Есть инструмент по замене шрифтов на всей сцене на дефолтный из списка шрифтов. Он находится в верхней вкладке YG2 → Auto Translate Langs → Font Default Masse.
В настройках модуля массив Font Size Correct поможет задать корректировку масштаба для каждого шрифта.
Обратите внимание на компонент Lang YG Additional Text — Добавляет строку к переведенному тексту. Через код можно менять поле Additional Text и всё корректно применится.