2017-11-11 5 views
0

Ich habe englische und chinesische Übersetzungen für die Verwendung mit i18next in meiner Web-App. Nun, mit dem untenstehenden Code, wollte ich, dass es en-US als Standard-Sprache ist und die Option hat, auf Chinesisch zu wechseln. Aber wenn ich die lokale Speichervariable für i18nextLng nachschaue, ist der Wert en-ZA. Warum ist das Standard-Englisch nicht auf en-US eingestellt?i18nächste Standard-Spracheinstellung für en-ZA statt en-US

Bitte lassen Sie mich wissen, wo ich falsch liege. Vielen Dank.

Unten ist der Code, den ich verwendet:

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

Antwort

1

zur Zeit der Config setzt nur fallbackLng, die „nur“ verwendet wird, wenn die erkannte Sprache von dem Detektor (=> en-ZA von localstorage) gefunden wird.

Um die Erkennungsgruppe lng manuell init zu überschreiben oder i18next.changeLanguage zu verwenden.

+0

Hallo @jamuhl, ich habe versucht, lng: en in js Login-Seite. Aber das Problem ist, wenn ein Benutzer auf der Anmeldeseite Chinesisch auswählt und nach dem Login die Seiten durchsucht. Und dann meldet er sich ab und kommt zur Login-Seite, anstatt Chinesisch, wechselt die Sprache ins Englische. Gibt es dafür eine Lösung? Wie lange bis die Sitzung aktiv ist, behalten Sie sie in der Sprache der Wahl für den Benutzer? – bgth

+0

also im Grunde willst du keine Erkennung ...? dann setze nicht lng auf init und config lng detektor um nicht zu erkennen, sondern nur cache: https://github.com/i18next/i18next-browser-languageDetector#detector-options – jamuhl

+0

Danke @jamuhl. – bgth