javascript - 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则无法在不更改整个系统语言的情况下翻译某些内容,您可以使用 2 种方式更改系统语言:
你描述的一个router.push
另一个是:
const { t, i18n } = useTranslation();
i18n.changeLanguage('de');
console.log( t('word') );
i18n.changeLanguage('en-US');
但是这个解决方案非常难看,因为您将只为非常小的日志切换整个系统语言。
如果您将描述真实案例,可能会帮助您找到真正的解决方案。真实案例意味着为什么您需要在 DE 上记录翻译的单词等等。
推荐阅读
- python - Python - 使用 Pandas 遍历 excel 文件的行
- opencv - 使用摄影参考比例进行图像校正
- python - 尝试将对象列转换为 int 时出错
- javascript - 使用 Typescript 和类发送 mailgun 消息
- datetime - 如何在谷歌应用程序脚本中将时间戳“新日期()”格式化为新加坡时区?
- python - 尝试从列表中获取列表的长度以及基于每个列表的长度的计数
- git - 如何在 Visual Studio Code 中推送 Git 标记?
- javascript - 如何在 NOSQL 中建立关系,例如 firestore
- python - 用户密码不变
- php - 使用 Laravel Mix 编译时出错 - Vue