首页 > 解决方案 > 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.

标签: javascriptreactjsnext.jsnext-i18next

解决方案


如果参考此文档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 上记录翻译的单词等等。


推荐阅读