Превключване на текста на текстов обект така, че да съответства на средата, в която текстът се поддържа многоезично
Среда за проверка
- Уиндоус
-
- Прозорци 11
- Редактор на единство
-
- 2021.3.12е1
- Входна система (Unity Technologies)
-
- 1.4.3
- Локализация (Unity Technologies)
-
- 1.3.2
Предпоставки за този съвет
Следните настройки са направени предварително като предпоставка за описанието на този съвет.
За локализацията
В много случаи игрите се създават на езика на средата, в която са разработени, или на английски език. Въпреки това, за да могат повече хора да играят игри, е необходимо да се създават игри според културата и езика на страната. Това обикновено се нарича "локализация".
В този съвет бих искал да направя "многоезична поддръжка", която е една от локализациите. Има много начини да направите многоезична поддръжка в Unity, но в този случай бихме искали да използваме официалния пакет за разширение на Unity, Localization, за да поддържаме множество езици.
Инсталиране на пакета за локализация
За да подкрепите локализацията, първо трябва да инсталирате пакета "Локализация".
От менюто изберете Прозорец - > Мениджър на пакети.
В горния ляв ъгъл на мениджъра на пакети, който се появява, изберете Unity Registry.
"Локализация" ще се покаже в менюто вляво, така че го изберете и кликнете върху бутона Инсталиране. Ще отнеме известно време за инсталиране. След като инсталирате, затворете диалоговия прозорец.
Създаване на локализация
След като инсталирате пакета, създайте текста за всеки език. Изберете Редактиране - > Настройки на проекта от менюто.
Изберете Локализация от менюто вляво и кликнете върху бутона Създай.
Файлът ще бъде създаден, така че посочете някоя папка. Ще бъдат генерирани множество файлове, така че е по-добре да ги създадете в специална папка. Тук създаваме папка "Локализация" в папката "Сцени" и я създаваме в нея.
Когато бъде създаден, екранът ще изглежда така.
Файлът се създава и в указаната папка. На този етап все още има един.
Създаване на езикова променлива
Ще създадем текста, съответстващ на езика. Отворете настройките на проекта Локализация и щракнете върху бутона Locale Generator.
Изберете съответната езикова променлива. Изберете само това, от което се нуждаете. Колкото повече проверявате, толкова по-широко може да се разгърне играта, но количеството работа ще се увеличи пропорционално.
Този път са избрани "японски (ja)", "английски (en)" и "испански (es)".
След настройката кликнете върху бутона "Генериране на локали" в долния десен ъгъл, за да го създадете.
Указва папката, в която да се създаде файлът. Тя може да бъде различно място, но е по-лесно да се управлява, ако е организирана, така че посочете папката "Локализация", създадена по-рано.
Avaliable Locales се добавя към броя на езиковите променливи, които сте избрали.
Файловете също се създават в указаната папка за толкова езикови променливи, колкото изберете.
След това конфигурирайте локалните селектори. Това е настройка за това каква информация определя езиковата променлива при стартиране на играта. Ако няма специални условия за вземане на решение, можете да го оставите така, както е. Искам езиковата променлива по подразбиране да бъде японска, когато езиковата променлива не е определена чрез опит. От третия Specific Localse Selector щракнете върху бутона кръг вдясно.
Изберете японски (ja).
По същия начин идентификаторът на езиковата променлива на проекта трябва да бъде "японски (ja)".
Създаване на текстове
Създаване на текст за всяка езикова променлива. Има няколко начина да го създадете, но тук ще го създадем, като настроим текста от нулата с GameObject.
От менюто изберете Прозорец > Управление на активи - > Таблици за локализация.
Щракнете върху Нова колекция от таблици.
Уверете се, че всички езикови променливи, които сте създали, са отметнати.
Тъй като този път локализираме текста, изберете "Колекция от низови таблици" за "Тип".
Задайте името на таблицата, защото текстът за всяка езикова променлива се поддържа като списък с таблици. TextTable
В този пример се използва.
След като влезете, кликнете върху бутона "Създаване".
Изберете дестинация. Тъй като за всяка таблица се генерират множество файлове, за предпочитане е да се създаде специална папка. Тук създаваме папка "TextTable" в папката "Локализация" и я определяме.
Веднъж създадена, таблицата ще се появи. Това е 0 линии, защото все още не съм създал нищо.
Файлове също се създават за папки като много езикови променливи. По принцип не докосвам това директно.
Нека се опитаме да създадем такъв. В таблицата има бутон "Добавяне на нов запис", така че кликнете върху него.
Това ще добави един ред и ще покаже поле за въвеждане за всяка езикова променлива.
Опитайте да преведете думата "здравей" на всеки език и да напишете съответно "Hello", "Hello" и "Hola".
Ключът е Hello
. Между другото, ако го въведете, той ще бъде запазен автоматично.
Добавете още един ред, за да знаете, че можете да управлявате повече от един.
Въз основа на думите "благодаря", ключът ThankYou
е да напишете всяка дума "благодаря", "благодаря" и "gracias".
Затворете диалоговия прозорец, след като влезете. Можете да го закачите някъде.
Настройки за локализация за текстови обекти
В този случай нека накараме текста на дисплея да премине към текстовия обект на потребителския интерфейс според езиковата променлива, зададена в играта.
Първо, поставете текстовия обект произволно. Този път не го използвам, но TextMeshPro
мога да се справя.
След като изберете поставения обект, изберете Локализиране от менюто с три точки на текстовия компонент.
Това добавя нов компонент за локализиране на низови събития.
Тъй като Препратка към низове не е избрано, щракнете върху Няма.
Когато диалоговият прозорец се покаже, въведете текстовия ключ, който трябва да бъде зададен в полето за въвеждане по-горе.
Hello
В този случай въведете и щракнете двукратно от Hello
списъка по-долу.
Можете да разгънете препратката към низове, за да видите, че различните стойности са зададени. Това е всичко.
Изпълнение и проверка
След като приключите, опитайте да стартирате играта. Текстът трябва да се промени, когато стартирате играта. На фигурата по-долу тя е показана на японски, защото работи в японска среда.
В горния десен ъгъл на екрана на играта на редактора, можете да промените езика на играта. Опитайте се да изберете испански за известно време.
След това можете да потвърдите, че съдържанието на текста се превключва автоматично.
Както можете да видите, официалният пакет за локализация на Unity улеснява прилагането и преминаването към потребителския интерфейс и да видите как работи.
Опитайте да зададете друг текст и вижте дали текстът се променя.
Опитайте да работите в друга езикова среда
Изграждане и извеждане на програмата, за да видите дали тя се появява на съответния език, когато се изпълнява в друга езикова среда.
Следващата диаграма показва резултатите от инсталирането на английски допълнително за японската операционна система Windows 11 и стартирането й в среда с английски като език по подразбиране. Мисля, че можете да се уверите, че езикът се превключва според околната среда.