有没有一种方法可以在不使用router.push更改语言环境的情况下使用next-i18next库进行翻译
我有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。
发布于 2021-05-26 23:58:12
如果参考此文档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上记录翻译后的word等等。
https://stackoverflow.com/questions/67708238
复制相似问题