Next-i18next 即时翻译

问题描述

有没有办法使用 next-i18next 库翻译某些内容而不用 router.push 更改语言环境?

我有 3 个语言环境:['en','de','fr']认为 de。当我尝试执行以下操作时:

import {useTranslation} from 'next-i18next'

const Component = () => {
  const { t } = useTranslation("common");
  console.log(t('word',{ lng: 'fr' }));
}

虽然我当前的语言环境是 de,但它返回 de 的翻译版本,而不是 fr

解决方法

如果参考此文档https://react.i18next.com/latest/usetranslation-hook,在不更改整个系统语言的情况下无法翻译某些内容,您可以使用两种方式更改系统语言:

你描述的router.push

另一个是:

const { t,i18n } = useTranslation();

i18n.changeLanguage('de');
console.log( t('word') );
i18n.changeLanguage('en-US');

但是这个解决方案非常难看,因为你会为非常小的日志切换整个系统语言。

如果您将描述真实案例,可能会帮助您找到真正的解决方案。真实案例意味着为什么你需要在 DE 上记录翻译的单词等等。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...