#javascript #reactjs #react-redux #react-i18next
Вопрос:
В настоящее время я использую функцию translate и экземпляр i18n через useTranslation()
hook.
Инициализация в компоненте React выглядит следующим образом:
const { t, i18n } = useTranslation();
Что хорошо работает, но я хотел бы избежать как отправки действия для изменения языка в магазине Redux , так и вызова i18n.changeLanguage(lang.code)
, каждый раз, когда пользователь меняет язык.
Поэтому мне было интересно, как я могу изменить активный i18n
язык из функции javascript, которая не является компонентом React, потому useTranslation()
что hook можно использовать только внутри компонента React.
Комментарии:
1. useTranslation существует только в react-i18n. Если вы хотите использовать i18n без react, то вы используете неправильный пакет. С учетом сказанного вы можете использовать «импорт i18n из `./i18n`», а затем «i18n.Язык изменений(your_language)» и «i18n.t(your_translation_string_goes_here);», чтобы делать то, что вы хотите, но это может привести к проблемам.