Получите локализованный текст и ресурсы в любое время

Страница обновлена :
Дата создания страницы :

Среда верификации

Виндоус
  • Windows 11
Редактор Unity
  • 2021.3.12f1
Система ввода (Unity Technologies)
  • 1.4.4
Локализация (Unity Technologies)
  • 1.3.2

Предпосылки для этого совета

Следующие настройки были сделаны заранее в качестве предпосылки для описания этого совета.

Цели наших советов

При нажатии на кнопку на экране загрузки отображается целевой текст из таблицы локализации.

Необходимые знания и подготовка

Этот совет предполагает локализацию следующего текста: Однако, поскольку мы не будем реализовывать их все, мы разместим процедуру из 1 здесь, но упростим дублированный контент.

Установка пакета локализации

Процедура здесь такая же.

Создание локализации

Это то же самое, что и раньше, поэтому я выложу только изображение.

Здесь мы создаем папку «Локализация» в папке «Сцены» и создаем ее в ней.

Создание языкового стандарта

Это то же самое, что и раньше, поэтому я опущу подробную процедуру. Добавляются следующие языковые стандарты: «Японский (ja)», «Английский (en)» и «Испанский (es)».

Я указал папку «Локализация», упомянутую ранее.

Оставьте языковой стандарт по умолчанию «Японский (ja)».

Создание текстов

Оставьте имя TextTable таблицы как .

Localization Создайте папку внутри TextTable папки и укажите ее.

Создайте текст. На этот раз цель состоит в том, чтобы получить его программно, чтобы вы могли зарегистрировать его на данный момент.

Размещение пользовательского интерфейса

Я хотел бы разместить текст и кнопку, и когда я нажимаю кнопку, я хочу отобразить текст текущего языкового стандарта.

Создание и прикрепление сценариев

Создайте сценарий. ButtonEvent Оставьте имя как .

using UnityEngine;
using UnityEngine.Localization.Settings;
using UnityEngine.UI;

public class ButtonEvent : MonoBehaviour
{
  [SerializeField] private Text Text;

  public void OnClick()
  {
    // Localization から指定したテーブル名とキーからエントリーを取得します
    var entry = LocalizationSettings.StringDatabase.GetTableEntry("TextTable", "Hello").Entry;

    Text.text = entry.Value;
  }
}

Укажите, что происходит при нажатии кнопки. Все, что мы здесь делаем, это одно LocalizationSettings.StringDatabase.GetTableEntry : вы можете получить запись найденного множества, указав имя таблицы и ключ, созданный в Локализации в методе. На этот раз мы делаем это с текстом, но активы также LocalizationSettings.AssetDatabase можно получить с помощью .

После того, как у вас есть запись, все, что вам нужно сделать, это получить ценность, которая у вас есть. Содержимое представляет собой текст выбранного языкового стандарта. На этот раз он получается синхронной обработкой, но можно использовать и асинхронные методы.

Присоедините сценарий к EventSystem. Также задайте текст.

Назначьте кнопке обработку кликов.

Запуск и проверка

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

Нажмите кнопку, чтобы переключиться на японский текст. Это связано с тем, что выбран текущий языковой стандарт японского языка.

Попробуйте изменить языковой стандарт в правом верхнем углу экрана, а затем нажать кнопку. Он должен измениться на текст целевого языкового стандарта.