我正在使用locize.io和i18n来翻译我的应用程序。一切工作正常,但是由于我用破折号添加了新语言:“ nn-NO”,所以我变得空了{}。
我正在像这样更改语言:i18n.changeLanguage(“ nn-NO”),但是方法以某种方式将不完整的字符串发送到服务器:
请求网址:https://api.locize.io/KEY_HERE/latest/nn申请方法:GET
并且当我手动尝试使用控制台和cUrl用“ nn-NO”更新此请求时,我得到了所有“ nn-NO”语言的翻译体裁。
[changeLanguage方法似乎不支持“-”,并且只考虑了字符串的第一部分就剪切了此字符串。
也许有人遇到这个问题?
如果您遇到相同的问题,只需更改您的i18n配置:
load: 'languageOnly'
为此:
load: 'all'
所以,配置看起来像这样:
i18n
.use(Backend)
.use(LastUsed)
.use(Editor)
.use(initReactI18next)
.init({
fallbackLng: 'en',
debug: false,
saveMissing: true,
whitelist: [list of allowed languages],
ns: [list of namespaces],
defaultNS: your_default_namespace,
interpolation: {
escapeValue: false,
},
backend: locizeOptions,
locizeLastUsed: locizeOptions,
editor: {
...locizeOptions,
onEditorSaved: async (lng, ns) => {
await i18n.reloadResources(lng, ns);
i18n.emit('editorSaved');
},
},
react: {
bindI18n: 'languageChanged editorSaved',
useSuspense: false
},
load: 'all'
});
我在文档中找到了答案:
“要查找的语言代码,给定的设置语言是'en-US':'all'-> ['en-US','en','dev'],'currentOnly'->'en-US ','languageOnly'->'en'“