【发布时间】:2015-04-20 20:26:18
【问题描述】:
这是关于在 node.js 后端使用 i18next。 这是初始化:
i18next.init({
lng: 'de',
fallbackLng: ['de'],
ns: {
namespaces: ['formal', 'informal'],
defaultNs: 'formal'
},
fallbackToDefaultNS: true,
resStore: {
de: resourcesDE,
en: resourcesEN
}
});
其中 resourcesDE 是具有结构 { 正式:{ },非正式:{ }} 的对象,resourcesEN 具有相同的结构,但只有“正式”,没有“非正式”(但即使有“非正式”,我也有这个问题在资源中EN)。
现在,我想要拥有的是:
如果我要求将 'informal:myKey' 翻译成英文,则搜索路径(== 后备)是:
(en)'informal:myKey' > (en)'myKey' > (de)'informal:myKey' > (de)'myKey' 或者 (en)'informal:myKey' > (en)'myKey' > (de)'myKey'
但实际上发生的是:
(zh)'informal:myKey' > (de)'informal:myKey' > (de)'myKey'
意味着在尝试从不同(默认)命名空间获取相同语言的文本之前,语言会发生变化。
我怎样才能做到这一点或类似的事情。我也尝试使用上下文而不是名称空间来替代这些替代方案,但这似乎表现相同。不过我很高兴被证明是错误的。
【问题讨论】: