I18n

Локализация I18n 1.0.2

Нет прав для скачивания
Возможности пакета I18n:
  • Создание языков
  • Окно редактора для заполнения языка фразами
  • Язык по умолчанию
  • Авто-сохранение выбранного языка
  • Динамическая смена языка
Если вам нужно простое и удобное решение для поддержки нескольких языков в игре, то I18n как раз для вас!

Как работает?

Вы создаете несколько языковых файлов (по одному на каждый язык). Эти языки заполняете фразами. Фраза состоит из ID и текста.

Из любого места в игре вы можете обратиться к текущему языку и получить текст фразы на нужном языке по ее ID.

Более подробно об использовании смотрите разделы ниже.

Установка

Откройте файл manifest.json в папке Packages в корне вашего Unity проекта и добавьте строчку ниже в начало списка dependencies:
JSON:
"com.cmtv.i18n": "https://github.com/CMTV/unity-i18n.git",
Результат должен выглядеть как-то так:
manifest.json:
{
  "dependencies": {
    "com.cmtv.i18n": "https://github.com/CMTV/unity-i18n.git",
    ...,
    ...,
    ...
   }
}
Это все! Unity автоматически загрузит и установит пакет!

Создание языка

Вся работа пакета I18n строится вокруг языков. Создать язык можно через меню "Assets > Create > I18n > Language". Языки нужно создавать в папке Resources/Languages!

Языки


В инспекторе можно указать информацию о языке:
  • Code — идентификатор языка. Примеры: ru, en, de.
  • Name — название языка. Примеры: Русский, English, Deutsch.
  • Is default? — если активировано, язык будет использоваться, когда нет выбранного языка.
Из нескольких языков с одинаковым полем Code или с отметкой Is default будет использоваться последний найденный!

Инспектор языка


Заполнение языка

Выберите язык, который хотите заполнить и нажмите кнопку "Open in Translator". Откроется новое окно. В нем вы можете добавлять/редактировать/удалять фразы.

Окно Translator


Использование

Ниже описаны основные варианты использования I18n.

Компонент Language Text

Чаще всего текст в играх отображается с помощью компонента UI/Text.

Пакет I18n добавляет новый компонент UI/Language Text. Его нужно использовать в комбинации с обычным компонентом Text.

Когда Language Text добавлен, вам нужно написать ID фразы в поле "Text" компонента Text.

Это все! В самой игре ID фразы будет заменен на текст этой фразы на выбранном языке!

Компонент Language Text


Результат в игре:

Результат в игре


Если активировать переключатель "Update On Lang Change", то текст фразы автоматически изменится при смене языка.

Прямой вызов

Получить текст фразы по ее ID с помощью простого кода:
C#:
string text = Lang.Phrase("new_game"); // Новая игра
К методам класса Lang можно обращаться из любой сцены игры.

Вы можете добавить некоторые знаки пунктуации в конце ID фразы:

. ... : ; !? ?! ! ?

C#:
string text = Lang.Phrase("new_game?!"); // Новая игра?!
Более того, можно передавать параметры в фразу в формате: ключ - значение. В этом случае все встречающиеся в тексте фразы {ключи} будут заменены на значения.
C#:
var phraseParams = new Dictionary<string, string>
{
    { "killer", "Crazy1998" } // Заменяем все "{killer}" в тексте фразы на "Crazy1998"
};

string text = Lang.Phrase("x_killed_you!", phraseParams); // Crazy1998 убил вас!
Изменение языка

Изменить текущий язык можно с помощью метода Lang.Switch(...), в который надо передать код языка:
C#:
Lang.Switch("ru"); // Переключаемся на русский язык
Можно также прослушивать событие onLanguageSwitch и выполнять свои действия во время смены языка.

Список языков

Список всех языков можно получить с помощью метода Lang.GetLangs(). Он возвращает массив структур типа LanguageInfo:
C#:
LanguageInfo[] langInfos = Lang.GetLangs();

foreach (var langInfo in langInfos)
{
    Debug.Log(langInfo.Code + " " + langInfo.Name); // en English // ru Русский // de Deutsch
}
Автор
CMTV
Скачивания
1
Просмотры
86
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя CMTV

Последние обновления

  1. Патч 1.0.2

    Добавлен changelog Исправлена проблема с предупреждениями типа "never assigned" у класса...
Сверху