README.md

Описание

Библиотека для возможности локализации проекта. Настройка локализации осуществляется в гугл таблицах. После чего данные из таблицы загружаются в проект.

Поддерживаемые платформы

На Windows доступна загрузка данных из гугл таблиц, а также загрузка значений в реальном времени. На Mac OS для изменения значений нужно отредактировать файлы локализации вручную и нажать кнопку загрузки.

Рекомендации по использованию

Пакет предназначен в первую очередь для локализации заранее заготовленных данных. Используйте динамическое создание, изменение и удаление категорий, ключей и переводов только по необходимости, а не в качестве основной функции.

Подготовка данных для загрузки

Для начала создайте документ гугл таблиц по следующему приципу: первый столбец - названия ключей, второй - тип значений (text, sprite, texture, sound), все последующие - переводы.

image

Доступно 3 типа данных:

  • text (текст)
  • sprite (путь к изображению относительно папки Streaming Assets)
  • texture (путь к изображению относительно папки Streaming Assets)
  • sound (путь к аудио клипу относительно папки Streaming Assets)

Для удобства навигации можно создать несколько листов. Все они будут загружены в проект.

Загрузка данных

Откройте объект локализации:

Снимок экрана 2022-11-07 130927.png

Все файлы локализации хранятся в Assets -> Streaming Assets -> Localization.

Вставьте URL таблицы:

image

После заполнения поля URL появится возможность импортировать данные и открыть в браузере загруженную таблицу.

В проекте на Windows во время загрузки скачиваются листы таблицы, обновляются файлы локализации и данные. В проекте на Mac OS только обновляются данные на основе файлов локализации.

Пример

В пакете есть примеры для каждого типа данных. Для удобства работы с примером загрузите следующую таблицу локализации https://docs.google.com/spreadsheets/d/1tH4erJnmTOkofuvVDsIjqqbZhEG6h454hUc9O5SRpwU/edit#gid=0

Важно! На страте необходимо вызвать метод VisualsLocalization.Initialization() для загрузки данных локализации.

Основные возможности

Компоненты

Все компоненты отображают только те категории и ключи, которые соответствуют текущему типу данных.

VisualsLocalizationText

Для переводов текстов. Для локализации неоходимо добавить этот компонент на объект, на котором уже есть либо компонент Text, либо TextMeshPro.

VisualsLocalizationImage

Для замены спрайтов. Для локализации неоходимо добавить этот компонент на объект, на котором уже есть компонент Image.

VisualsLocalizationRawImage

Для замены текстур. Для локализации неоходимо добавить этот компонент на объект, на котором уже есть компонент RawImage.

VisualsLocalizationAudio

Для замены аудио клипов. Для локализации неоходимо добавить этот компонент на объект, на котором уже есть компонент AudioSource.

Методы

VisualsLocalization

  • VisualsLocalization.Initialization() - для загрузки данных на старте.
  • VisualsLocalization.UpdateExistingSheets() - для обновления локализации с гугл таблиц
  • VisualsLocalization.ImportSimple() - для обновления локализации из файлов в папке StreamingAssets/Localization

LocalizationStorage

  • AddKeyValues(string categoryName, string keyName, string type, List<string> values) - добавить новый перевод для заданной категории
  • AddCategory(string categoryName) - добавить новую категорию в локализацию

Общие для всех компонентов методы

  • GetValuesByKeyIndex(int index) - получить перевод по индексу ключа
  • GetCurrentKeyIndex() - получить текущий индекс ключа
  • GetCurrentKeyName() - получить текущее имя ключа
  • GetCurrentCategoryAllKeys() - получить все ключи для текущей категории
  • GetCurrentCategoryKeysByType(LocalizationType type) - получить все ключи для текущей категории заданного типа
  • GetKeyIndexByName(string keyName) - получить индекс ключа текущей категории по его имени
  • GetKeyNameByIndex(int keyIndex) - получить имя ключа текущей категории по его индексу
  • GetCurrentCategoryName() - получить название текущей категории
  • GetCurrentCategoryIndex() - получить индекс текущей категории
  • GetCurrentCategoryInfo() - получить все данные текущей категории
  • GetCurrentKeyInfo() - получить информацию о текущем ключе
  • GetCurrentValuesInfo() - получить перевод текущего ключа

  • SetKeyByIndex(int index) - установить новый ключ по индексу

  • SetKeyByName(string keyName) - установить новый ключ по имени
  • SetCategoryByName(string categoryName) - установить новую категорию по имени
  • SetCategoryByIndex(int index) - установить новую категорию по индексу

VisualsLocalizationText

  • ReplaceSubstringInText(string newString, string separatorCharacter) - замена подстроки в тексте локализации

VisualsLocalizationAudio

  • PlayAudioSource() - начать воспроизведение на текущем языке
  • StopAudioSource() - остановить воспроизведение
  • GetAudioSource() - получить компонент AudioSource

События

  • LocalizationStorage.changedLanguage - событие при смене языка. Возвращает индекс текущего языка.
  • VisualsLocalization.loadLocalization - событие загрузки данных локализации.
Конвейеры
0 успешных
0 с ошибкой