在i18next中调用t函数时能否为特定场景直接指定自定义回退值?
i18next t函数指定回退值的问题解答
可以实现你要的动态回退效果,但你写的参数语法不符合i18next的约定。
i18next的t()函数原生支持通过第二个参数对象的defaultValue属性设置翻译不存在时的回退内容,正确的代码写法如下:
entries.map(entry => t(`page_name__${entry.label}__label`, { defaultValue: entry.label }) );
补充说明:
- 当key为
page_name__${entry.label}__label的翻译不存在时,会直接返回你传入的defaultValue也就是entry.label作为兜底内容,完全符合你预期的效果 - 如果你需要多层级回退,还可以给
defaultValue传入数组,函数会按顺序匹配存在的翻译,示例如下:
t('missingKey', { defaultValue: ['fallbackKey', '最终兜底文本'] })
- 不要直接写
fallback=xxx的语法,这既不符合i18next的参数约定,也不是标准的JS对象传参写法
内容的提问来源于stack exchange,提问作者daviddaubner
相关产品推荐
相关产品推荐

