2017-11-11 318 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

相關問題