Локализация на внешних JSON файлах

На нашем ресурсе можно найти несколько вариантов для локализации игрового интерфейса, однако, в этом случае, мы решили реализовать локаль, на внешних файлах JSON. Скрипт работает с папкой StreamingAssets где расположены файлы. Удобство такого подхода в том, что, во-первых, можно внести исправления в текст, без необходимости сборки игры в Unity, во-вторых, можно добавлять сколько угодно новых локализаций, на основе оригинала и все они станут доступными в игре в меню выбора. Обращаем внимание, что скрипт заточен под локализацию именно интерфейса игры, поддерживается локализация внутри кода.

Локализация на внешних JSON файлах

Всё что нужно это прикрепить скрипт LocaleComponent, на текстовый компонент и добавить свой ключ, текст ключа может быть абсолютно любым, тут важно, чтобы вам самим было понятно, что означает ключ. Для одинакового текста, используем одинаковые ключи.

Когда вы добавите все компоненты и ключи, нажмите кнопку "Создать" в инспекторе скрипта, чтобы сгенерировать файл шаблона.


В массиве Рarent вам нужно указать Canvas для которых предусмотрена локализация.



Так же в инспекторе можно вручную добавить ключ и текст. Это нужно для того, чтобы потом запрашивать ключи внутри кода, например, если у вас есть некий текст, который выводиться только через скрипт.

Если вы добавляете текст, который разбит на строки, то при записи в JSON, новые строки будут помечены как стандартный HTML код:
<br>
Обратите на это внимание при создании перевода текста.

Запрос в коде делается так:
string text = Locale.Get("key");

Скачать скрипты:
https://boosty.to/null-code/posts/62097784-b9a9-47df-bce0-038f79df059d
Тестировалось на: Unity 2019.2.0

Комментариев 2

Офлайн
Dakurlz 24 августа 2019
Интереснейшая тема! Буду изучать!
З.Ы Ребята, не хочу оффтопить тут, подскажите где вам можно задать вопрос (по Unity) ? Заранее благодарен.
Офлайн
Light 24 августа 2019
Dakurlz, смотря какой вопрос) Но вообще, в ЛС если что.
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика