Перемикання тексту текстового об'єкта відповідно до середовища, в якому текст підтримується багатьма мовами

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

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

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

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

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

Про локалізацію

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

У цій пораді я хотів би зробити «багатомовну підтримку», яка є однією з локалізацій. Існує багато способів багатомовної підтримки в Unity, але в цьому випадку ми хотіли б використовувати офіційний пакет розширень Unity, Localization, для підтримки декількох мов.

Встановлення пакета локалізації

Щоб підтримати локалізацію, спочатку потрібно встановити пакет «Локалізація».

У меню виберіть Вікно - > Менеджер пакетів.

У верхньому лівому куті менеджера пакетів, що з'явиться, виберіть Unity Registry.

«Локалізація» буде відображатися в меню зліва, тому виберіть її та натисніть кнопку Встановити. Установка займе деякий час. Після встановлення закрийте діалогове вікно.

Створення локалізації

Після встановлення пакета створіть текст для кожної мови. Виберіть Редагувати - > Налаштування проекту в меню.

Виберіть Локалізація в меню ліворуч і натисніть кнопку Створити.

Файл буде створений, тому вкажіть будь-яку папку. Буде згенеровано кілька файлів, тому краще створити їх у спеціальній папці. Тут ми створюємо папку «Локалізація» в папці «Сцени» і створюємо її в ній.

При створенні екран буде виглядати наступним чином.

Файл також створюється в зазначеній папці. На даний момент ще є один.

Створення локалізації

Ми створимо текст, відповідний мові. Відкрийте налаштування проекту Локалізація та натисніть кнопку Генератор локалізації.

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

Цього разу вибираються "японська (ja)", "англійська (en)" та "іспанська (es)".

Після налаштування натисніть кнопку "Створити локалізації" внизу праворуч, щоб створити її.

Визначає папку, в якій потрібно створити файл. Це може бути інше місце, але простіше керувати, якщо воно організовано, тому вкажіть папку «Локалізація», створену раніше.

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

Файли також створюються у вказаній папці для вибраної кількості мов.

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

Виберіть японську (ja).

Так само ідентифікатором локалізації проекту має бути "Japanese (ja)".

Створення текстів

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

У меню виберіть Window > Asset Management - > Localization Tables.

Натисніть кнопку Створити набір таблиць.

Переконайтеся, що встановлено прапорці для всіх створених мовних і регіональних параметрів.

Оскільки цей час ми локалізуємо текст, для "Type" виберіть "String Table Collection". Укажіть ім'я таблиці, оскільки текст для кожної мови зберігається у вигляді списку таблиць. TextTable В даному прикладі він використовується.

Після входу натисніть кнопку «Створити».

Виберіть пункт призначення. Оскільки для кожної таблиці генерується кілька файлів, бажано створити спеціальну папку. Тут створюємо папку «TextTable» в папці «Localization» і вказуємо її.

Після створення з'явиться таблиця. Це 0 рядків, тому що я ще нічого не створив.

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

Спробуємо його створити. У таблиці є кнопка "Add New Entry", тому натисніть її.

Це додасть один рядок і відобразить поле вводу для кожної мови. Спробуйте перекласти слово "hello" на кожну мову та ввести "Hello", "Hello" та "Hola" відповідно. Ключовим є Hello . До речі, якщо його ввести, то він збережеться автоматично.

Додайте ще один рядок, щоб знати, що можна керувати кількома рядками. Виходячи зі слів "дякую", ключовим є ThankYouвведення кожного слова "дякую", "дякую" та "gracias".

Будь ласка, закрийте діалогове вікно після входу. Можна кудись його пристикувати.

Параметри локалізації текстових об'єктів

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

Спочатку розташуйте текстовий об'єкт довільно. Цього разу я його не використовую, але TextMeshPro впораюся.

Після виділення розміщеного об'єкта оберіть "Локалізувати" у триточковому меню компонента "Текст".

Буде додано новий компонент Localize String Event.

Оскільки параметр "Посилання на рядок" не вибрано, виберіть пункт Немає.

Коли з'явиться діалогове вікно, введіть текстовий ключ, який потрібно встановити, у поле введення вище. Hello У цьому випадку введіть і двічі клацніть зі Hello списку нижче.

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

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

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

У правому верхньому кутку екрана гри в редакторі ви можете змінити мову гри. Спробуйте вибрати іспанську мову на деякий час.

Потім ви можете підтвердити, що вміст тексту перемикається автоматично.

Як бачите, офіційний пакет локалізації Unity дозволяє легко подати заявку та перейти на інтерфейс користувача та побачити, як він працює.

Спробуйте встановити інший текст і подивіться, чи не зміниться текст.

Спробуйте запустити в іншому мовному середовищі

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

На наступній діаграмі показано результати додаткової інсталяції англійської мови для японської ОС Windows 11 та її запуску в середовищі з англійською мовою за замовчуванням. Я думаю, ви можете переконатися, що мова перемикається відповідно до середовища.