Получаване на локализиран текст и активи по всяко време
Среда за проверка
- Уиндоус
-
- Прозорци 11
- Редактор на единство
-
- 2021.3.12е1
- Входна система (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
нещо: можете да получите записа на намереното множество, като посочите името на таблицата и ключа, създаден в Локализация в метода.
Този път го правим с текст, но активите могат да бъдат получени и LocalizationSettings.AssetDatabase
чрез използване на .
След като имате влизането, всичко, което трябва да направите, е да получите стойността, която имате. Съдържанието е текстът на избраната езикова променлива. Този път се получава чрез синхронна обработка, но можете да използвате и асинхронни методи.
Прикачете скрипта към EventSystem. Определете и текста.
Присвояване на обработка на щраквания на бутона.
Изпълнение и проверка
Опитайте да го изпълните, след като приключите с настройването му. Тъй като в потребителския интерфейс не са зададени събития за локализация, текстът не се променя при изпълнение.
Щракнете върху бутона, за да превключите на текста на японски. Това е така, защото е избрана текущата езикова променлива на японския.
Опитайте да промените езиковата променлива в горния десен ъгъл на екрана и след това щракнете върху бутона. Тя трябва да се промени в текста за целевата езикова променлива.