i18next默认语言设置为en-ZA而不是en-US
问题描述:
我在我的web应用程序中使用了i18next的英文和中文翻译。现在,使用下面的代码,我希望它是en-US作为默认语言,并且可以选择更改为中文。但是,当我查找i18nextLng的本地存储变量时,值为en-ZA。为什么默认英语不能设置为en-US。i18next默认语言设置为en-ZA而不是en-US
请让我知道我错了。谢谢。
下面是我使用的代码:
i18next
.use(i18nextXHRBackend)
.use(i18nextBrowserLanguageDetector)
.init({
fallbackLng: 'en',
debug: true,
ns: ['menu', 'translate'],
defaultNS: 'translate',
backend: {
loadPath: '/assets/locales/{{lng}}/{{ns}}.json',
crossDomain: false
}
}, function(err, t) {
// init set content
updateContent();
});
答
目前你的配置只设置fallbackLng
如果从检测器(=> EN-ZA从localStorage的)检测到的语言发现其使用的是“公正”。
手动覆盖init上的检测集lng
或使用i18next.changeLanguage
。
嗨@jamuhl,我试着把登录页面中的lng:en放入js中。但问题在于,如果用户将在登录页面上选择中文并在登录后浏览页面。然后他注销并登录页面,而不是中文,语言变为英文。有没有解决方案?一直到会话处于活动状态,请将其保存为用户选择的语言? – bgth
所以基本上你不想检测...?那么不要在init和config lng检测器上设置lng而不检测,但只检测缓存:https://github.com/i18next/i18next-browser-languageDetector#detector-options – jamuhl
谢谢@jamuhl。 – bgth