2017-11-11 316 views
0

我在我的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(); 
    }); 

回答

1

目前你的配置只设置fallbackLng如果从检测器(=> EN-ZA从localStorage的)检测到的语言发现其使用的是“公正”。

手动覆盖init上的检测集lng或使用i18next.changeLanguage

+0

嗨@jamuhl,我试着把登录页面中的lng:en放入js中。但问题在于,如果用户将在登录页面上选择中文并在登录后浏览页面。然后他注销并登录页面,而不是中文,语言变为英文。有没有解决方案?一直到会话处于活动状态,请将其保存为用户选择的语言? – bgth

+0

所以基本上你不想检测...?那么不要在init和config lng检测器上设置lng而不检测,但只检测缓存:https://github.com/i18next/i18next-browser-languageDetector#detector-options – jamuhl

+0

谢谢@jamuhl。 – bgth

相关问题