TranslationManager оборачивает i18next и добавляет хелперы для получения переводов из MastermindCMS.
Инициализация
Перед использованиемtranslate() один раз задайте путь к 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(), например после смены набора локалей.