activate()
(和 deactivate()
)暂时切换翻译以不同的语言完成。同样,在模板中,我可以使用 {% language %}
模板标签。
这允许我将整个页面翻译成通用语言,但用另一种语言呈现它的特定部分。
是否可以做与
i18next
类似的事情,用另一种语言渲染some组件?
更新:
感谢@Avi 的评论,我离这里的答案更近了一点。但这只允许我指定单个字符串的语言。我想做的是设置组件及其所有子组件的语言。这可能吗?
lng
挂钩时将其应用于
t
函数,而不是将
useTranslation
选项应用于特定翻译。
const { t } = useTranslation('context', { lng: 'de' });
t
函数的翻译都将使用您指定的语言(本例中为德语)。我不认为组件后代可以默认继承它,但您始终可以将
t
函数作为 prop 传递给其他组件,这样您就知道它们都使用您在父组件中定义的相同
t
函数
const MyComponent = () => {
const { t } = useTranslation('context', { lng: 'de' });
return (
<AnotherComponent t={t} />
)
}
const AnotherComponent = ({ t }) => {
const myTranslation = t('settings');
return <p>{myTranslation }</p>
}