Отримання списку створених мовних і регіональних параметрів

Сторінка оновлюється :
Дата створення сторінки :

Середовище перевірки

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

Передумови для цієї поради

Наступні настройки були зроблені заздалегідь як передумова для опису цієї поради.

Цілі наших порад

Відображає список відповідних мовних і регіональних параметрів у розкривному інтерфейсі користувача та перемикає текст відображення відповідно до локалізації, вибраної користувачем.

Необхідні знання та підготовка

Ця порада передбачає локалізацію наступного тексту: По-перше, зверніться до наступних порад, щоб підготуватися до відображення локалізованого тексту.

Змінення локалізації розкривного списку

Надає розкривний список для відображення списку мовних і регіональних положень. Вам потрібно лише мати можливість відображати та вибирати, тому переконайтеся, що параметри інтерфейсу користувача встановлені належним чином.

Отримання списку локалізацій

Список мовних і регіональних параметрів LocalizationSettings.AvailableLocales.Locales можна отримати в . Якщо ви використовуєте це та встановлюєте спадне меню на початку сцени, все в порядку. Однак ініціалізація може не завершитися під час Localization запуску гри, тому, можливо, вам доведеться дочекатися її завершення.

Спочатку створіть сценарій. DropDownEvent Залиште ім'я як .

Сценарій виглядає так:

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

public class DropDownEvent : MonoBehaviour
{
  // 最初のフレームアップデートの前に開始が呼び出されます
  async void Start()
  {
    // Localization の初期化が完了するまで待機します
    await LocalizationSettings.InitializationOperation.Task;

    // 処理対象の Dropdown コンポーネントを取得します
    var dropdownLocale = GetComponent<Dropdown>();
    dropdownLocale.options.Clear();

    // LocalizationSettings.AvailableLocales.Locales からロケール一覧を取得してオプションを追加します
    foreach (var locale in LocalizationSettings.AvailableLocales.Locales)
    {
      dropdownLocale.options.Add(new Dropdown.OptionData(locale.name));
    }

    // 初期選択されているロケールのインデックスを取得して選択します
    dropdownLocale.value = LocalizationSettings.AvailableLocales.Locales.IndexOf(LocalizationSettings.SelectedLocale);

    // ドロップダウンのアイテムが選択されたときにロケールを変更します
    dropdownLocale.onValueChanged.AddListener((index) =>
    {
      LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[index];
    });
  }
}

Start Метод виконує обробку на початку сцени, але на даний момент Localization , ініціалізація може бути не завершена. await LocalizationSettings.InitializationOperation.Task Дочекайтеся завершення ініціалізації. await , тому Start , будь ласка, додайте його до методу async .

LocalizationSettings.AvailableLocales.Locales Далі міститься список створених мовних і регіональних параметрів, тому foreach обробляйте потрібну кількість мовних і регіональних параметрів. Dropdown.OptionData Установіть Dropdown ім'я мови та додайте його до .

Щоб вибрати Dropdown.value поточну мову в розкривному списку, знайдіть цільову мову у властивості та встановіть індекс.

На цьому створення списку завершено, але також потрібно включити процес, який змінює локалізацію при виборі розкривного елемента. onValueChanged Додає перемикання локалі до події. Це те ж саме, що і попередня порада.

Прикріпіть створений сценарій до спадного меню.

Запуск і перевірка

Спробуйте запустити гру, щоб перевірити це. Буває момент, коли список локалізацій не встановлюється відразу після запуску гри, Localization тому що не ініціалізується.

Через деякий час ви зможете побачити список локалізацій, зареєстрованих у спадному меню. Якщо спробувати переключитися між елементами, можна побачити, що вміст тексту змінюється.