Как изменить активный язык i18next вне компонента React

#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);», чтобы делать то, что вы хотите, но это может привести к проблемам.