Изменение языкового стандарта в любое время

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

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

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

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

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

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

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

Размещение кнопок для смены языкового стандарта

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

Сценарии для кнопок

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

ButtonEvent Создайте скрипт с именем .

using UnityEngine;

public class ButtonEvent : MonoBehaviour
{
  /// <summary>Japanese (ja) ボタンをクリックしたとき。</summary>
  public void OnClickJa()
  {
  }

  /// <summary>English (en) ボタンをクリックしたとき。</summary>
  public void OnClickEn()
  {
  }

  /// <summary>Spanish (es) ボタンをクリックしたとき。</summary>
  public void OnClickEs()
  {
  }
}

Назначьте каждый метод нажатию кнопки.

Обработка изменений языкового стандарта

Измените код следующим образом:

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

public class ButtonEvent : MonoBehaviour
{
  /// <summary>Japanese (ja) ボタンをクリックしたとき。</summary>
  public void OnClickJa()
  {
    LocalizationSettings.SelectedLocale = Locale.CreateLocale("ja");
  }

  /// <summary>English (en) ボタンをクリックしたとき。</summary>
  public void OnClickEn()
  {
    LocalizationSettings.SelectedLocale = Locale.CreateLocale("en");
  }

  /// <summary>Spanish (es) ボタンをクリックしたとき。</summary>
  public void OnClickEs()
  {
    LocalizationSettings.SelectedLocale = Locale.CreateLocale("es");
  }
}

Само изменение простое LocalizationSettings.SelectedLocale и может быть переключено, просто установив цель Locale в свойстве. Locale Locale.CreateLocale можно создать, задав имя языкового стандарта в методе.

Однако, поскольку процесс изменения языкового стандарта является асинхронным, следующий процесс, который устанавливает, не означает,LocalizationSettings.SelectedLocale что языковой стандарт уже полностью переключен. Будьте осторожны при выполнении операций, зависящих от языкового стандарта.

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

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