Отримуйте локалізований текст і об'єкти в будь-який час
Середовище перевірки
- Вікна
-
- вікна 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. Також налаштуйте текст.
Призначте кнопці обробку клацань.
Запуск і перевірка
Спробуйте запустити його після завершення налаштування. Оскільки в інтерфейсі користувача не встановлено жодних подій локалізації, текст не змінюється під час виконання.
Натисніть кнопку, щоб перейти до тексту японською мовою. Це пов'язано з тим, що вибрано поточну мову японської мови.
Спробуйте змінити мову у верхньому правому куті екрана та натиснути кнопку. Він повинен змінитися на текст для цільової мови.