Переключение текста текстового объекта в соответствии со средой, в которой текст поддерживается на нескольких языках
Среда верификации
- Виндоус
-
- Windows 11
- Редактор Unity
-
- 2021.3.12f1
- Система ввода (Unity Technologies)
-
- 1.4.3
- Локализация (Unity Technologies)
-
- 1.3.2
Предпосылки для этого совета
Следующие настройки были сделаны заранее в качестве предпосылки для описания этого совета.
О локализации
Во многих случаях игры создаются на языке среды, в которой они разрабатываются, или на английском языке. Однако для того, чтобы больше людей играли в игры, необходимо создавать игры в соответствии с культурой и языком страны. Это обычно называют «локализацией».
В этом совете я хотел бы сделать «многоязычную поддержку», которая является одной из локализаций. Есть много способов сделать многоязычную поддержку в Unity, но в этом случае мы хотели бы использовать официальный пакет расширений Unity, Localization, для поддержки нескольких языков.
Установка пакета локализации
Для поддержки локализации необходимо сначала установить пакет «Локализация».
В меню выберите Окно - > Диспетчер пакетов.
В левом верхнем углу появившегося менеджера пакетов выберите Unity Registry.
«Локализация» отобразится в меню слева, поэтому выберите его и нажмите кнопку «Установить». Установка займет некоторое время. После установки закройте диалоговое окно.
Создание локализации
После установки пакета создайте текст для каждого языка. Выберите в меню Edit - > Project Settings (Правка - Project Settings).
Выберите «Локализация» в меню слева и нажмите кнопку «Создать».
Файл будет создан, поэтому укажите любую папку. Будет сгенерировано несколько файлов, поэтому лучше создавать их в специальной папке. Здесь мы создаем папку «Локализация» в папке «Сцены» и создаем ее в ней.
При создании экран будет выглядеть следующим образом.
Файл также создается в указанной папке. На данный момент есть еще один.
Создание языкового стандарта
Мы создадим текст, соответствующий языку. Откройте настройки проекта Локализация и нажмите кнопку Генератор языковых стандартов.
Выберите соответствующий языковой стандарт. Выбирайте только то, что вам нужно. Чем больше вы проверяете, тем шире игра может быть развернута, но объем работы будет увеличиваться пропорционально.
На этот раз выбираются «японский (ja)», «английский (en)» и «испанский (es)».
После настройки нажмите кнопку «Создать языковые стандарты» в правом нижнем углу, чтобы создать его.
Указывает папку, в которой будет создан файл. Это может быть другое место, но им легче управлять, если оно организовано, поэтому укажите папку «Локализация», созданную ранее.
Доступные языковые стандарты добавляются к количеству выбранных языковых стандартов.
Файлы также создаются в указанной папке для любого количества языковых стандартов, которые вы выберете.
Затем настройте селекторы языкового стандарта. Это настройка того, какая информация определяет языковой стандарт при запуске игры. Если нет особых условий принятия решения, можно оставить все как есть. Я хочу, чтобы языковой стандарт по умолчанию был японским, если языковой стандарт не определяется попыткой. В третьем селекторе Specific Localse нажмите кнопку с кружком справа.
Выберите Японский (ja).
Аналогичным образом, идентификатор языкового стандарта проекта должен быть «японский (ja)».
Создание текстов
Создайте текст для каждого языкового стандарта. Есть несколько способов его создания, но здесь мы создадим его, установив текст с нуля с помощью GameObject.
В меню выберите Окно > Управление активами - > Таблицы локализации.
Нажмите кнопку Создать коллекцию таблиц.
Убедитесь, что отмечены все созданные вами языковые стандарты.
Так как в это время мы локализуем текст, выбираем «Коллекция строковых таблиц» для «Тип».
Укажите имя таблицы, так как текст для каждого языкового стандарта сохраняется в виде списка таблиц. TextTable
В данном примере он используется.
После входа нажмите кнопку «Создать».
Выберите пункт назначения. Поскольку для каждой таблицы создается несколько файлов, предпочтительнее создать специальную папку. Здесь мы создаем папку «TextTable» в папке «Локализация» и указываем ее.
После создания появится таблица. Это 0 строк, потому что я еще ничего не создал.
Файлы также создаются для папок во многих языковых стандартах. В принципе, я не касаюсь этого напрямую.
Давайте попробуем его создать. В таблице есть кнопка «Добавить новую запись», поэтому нажмите ее.
Это добавит одну строку и отобразит поле ввода для каждого языкового стандарта.
Попробуйте перевести слово «hello» на каждый язык и ввести «Hello», «Hello» и «Hola» соответственно.
Ключевым моментом является Hello
. Кстати, если вы его введете, он будет сохранен автоматически.
Добавьте еще одну строку, чтобы вы знали, что можете управлять несколькими строками.
Основываясь на словах «спасибо», ключ ThankYou
состоит в том, чтобы ввести каждое слово «спасибо», «спасибо» и «gracias».
Пожалуйста, закройте диалоговое окно после входа. Вы можете пришвартовать его где-нибудь.
Параметры локализации текстовых объектов
В этом случае давайте сделаем так, чтобы отображаемый текст переключился на текстовый объект пользовательского интерфейса в соответствии с языковым стандартом, установленным в игре.
Во-первых, разместите текстовый объект произвольно. В этот раз я им не пользуюсь, но TextMeshPro
справлюсь.
Выделив помещенный объект, выберите пункт «Локализовать» в трехточечном меню компонента «Текст».
При этом будет добавлен новый компонент Localize String Event.
Так как параметр «Ссылка на строку» не выбран, нажмите кнопку «Нет».
Когда отобразится диалоговое окно, введите текстовый ключ, который будет установлен, в поле ввода выше.
Hello
В этом случае введите и дважды щелкните из Hello
списка ниже.
Вы можете развернуть строковую ссылку, чтобы увидеть, что установлены различные значения. Вот и все.
Запуск и проверка
Как только вы закончите, попробуйте запустить игру. Текст должен меняться при запуске игры. На рисунке ниже он отображается на японском языке, потому что он работает в японской среде.
В правом верхнем углу игрового экрана в редакторе вы можете изменить язык игры. Попробуйте выбрать испанский язык на некоторое время.
Затем вы можете подтвердить, что содержимое текста переключается автоматически.
Как видите, официальный пакет локализации Unity позволяет легко применить и переключиться на пользовательский интерфейс и посмотреть, как он работает.
Попробуйте установить другой текст и посмотрите, изменится ли текст.
Попробуйте работать в другой языковой среде
Постройте и выведите программу, чтобы увидеть, отображается ли она на соответствующем языке при запуске в другой языковой среде.
На следующей схеме показаны результаты дополнительной установки английского языка для японской ОС Windows 11 и ее запуска в среде с английским языком по умолчанию. Я думаю, вы можете убедиться, что язык переключается в соответствии с окружающей средой.