Skip to main content
TranslationManager оборачивает i18next и добавляет хелперы для получения переводов из MastermindCMS.

Инициализация

Перед использованием translate() один раз задайте путь к JSON с локалями:
В реальном приложении путь указывает на публичные JSON-файлы локализации, например:
Шаблон {{lng}} заменяется текущим кодом языка. Инициализацию достаточно выполнить один раз при старте приложения.

Экспорты

Через msm-components можно использовать:
  • setLocalesPath(loadPath)
  • translate(...args)
  • translations (proxy для ленивого доступа к переводам)
  • tr(key, repository?) (загружает/возвращает один перевод)
  • loadTranslation(key, repository?)
  • loadManyTranslations(...keys)
  • loadByLangCodeForEntity(entityId, lang, repository?)
  • loadByLangCode(key, lang)
  • loadTranslationById(id)
  • clearTranslationsCache()
  • getLanguages()
  • getAlphabetForActiveLanguage()

Примеры использования

translate работает асинхронно и совместим с ключами и опциями i18next:
Для нескольких ключей используйте один вызов loadManyTranslations:
tr и translations предназначены для ленивой загрузки переводов из репозитория:
Для перевода конкретной сущности с явным языком используйте loadByLangCodeForEntity:

Примечания

  • Если setLocalesPath() не был вызван, функции переводов выбросят ошибку, чтобы проблема конфигурации была сразу заметна.
  • Внутри используется универсальный механизм сервисных вызовов (service/repository), поэтому это опирается на инстанс встроенного клиента, который предоставляет msm-components.
  • Кэш переводов можно сбросить через clearTranslationsCache(), например после смены набора локалей.