Отримуйте локалізований текст і об'єкти в будь-який час

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

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

Вікна
  • вікна 11
Редактор єдності
  • 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 : ви можете отримати запис знайденого набору, вказавши в методі ім'я таблиці та ключ, створений у Localization. Цього разу ми робимо це з текстом, але активи також LocalizationSettings.AssetDatabase можна отримати, використовуючи .

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

Прикріпіть скрипт до EventSystem. Також налаштуйте текст.

Призначте кнопці обробку клацань.

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

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

Натисніть кнопку, щоб перейти до тексту японською мовою. Це пов'язано з тим, що вибрано поточну мову японської мови.

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