2017-11-11 34 views
0

ウェブアプリケーションでi18nextで使用するための英語と中国語の翻訳があります。さて、以下のコードでは、デフォルト言語としてen-USになり、中国語に変更するオプションがあるようにしました。しかし、i18nextLngのローカルストレージ変数を調べると、値はen-ZAになります。デフォルトの英語がen-USに設定されないのはなぜですか?i18next en-USの代わりにen-ZAに設定する

私が間違っている場所を教えてください。ありがとう。以下は

は、私が使用するコードです:

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

現在お使いの設定のみ(=>エン-ZAのlocalStorageから)検出器から検出された言語が発見された場合、「ちょうど」が使用されてfallbackLngを設定します。

手動で検出セット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

Thanks @jamuhl。 – bgth

関連する問題