2016-05-04 7 views
1

Ich verwende i18next für die Internationalisierung einer Anwendung.Sprachvariablen in i18next

ich es so bin Initialisierung:

i18n.init({debug: false, getAsync: false, resGetPath: _this.buildPath + _this.i18nPath + '__lng__/__ns__.json'}); 

Was die Variablen __lng__ und __ns__ für stehen?

Antwort

0
  • __lng__ ist die Sprache
  • __ns__ der Namensraum zu laden ist

Grundsätzlich zu laden bedeutet dies, dass, wenn Sie mit lng: 'en-US' initialisieren zu laden versuchen:

  1. _this.buildPath + _this.i18nPath + 'en-US/translation.json'
  2. _this.buildPath + _this.i18nPath + 'en/translation.json'
  3. _this.buildPath + _this.i18nPath + 'dev/translation.json'

Da Entwickler die Standard falback Sprache & Übersetzung ist der Standard-Namespace.

Sie können die Dokumentation here nützlich finden, da es mehr Möglichkeiten zeigt, sie zu verwenden, abhängig davon, wie Ihr Backend funktioniert.

BEARBEITEN: Es gibt eine Reihe von Möglichkeiten, um die Sprache einzustellen, die geladen wird. Die einfachste Möglichkeit besteht darin, den Wert als lng Parameter von i18n.init() zu übergeben. Ein Beispiel dafür wäre:

i18n.init({ 
    debug: false, 
    getAsync: false, 
    lng: _this.language, 
    fallbackLng: _this.defaultLanguage, 
    resGetPath: _this.buildPath + _this.i18nPath + '__lng__/__ns__.json' 
}); 

Dieses Beispiel ist das gleiche wie Ihres, legt aber die Sprache explizit fest. Ich setze auch fallbackLng, aber das ist hauptsächlich nützlich, wenn Sie die Sprache von einem Benutzer in irgendeiner Weise akzeptieren (z. B. von browser language), so dass alle nicht unterstützten Sprachen auf einen Standard zurückfallen. Wenn Sie nur die Auswahl von vorab genehmigten Werten zulassen, ist dies möglicherweise nicht erforderlich.

+0

Vielen Dank für Ihre Antwort! Allgemein verstehe ich jetzt, wie es funktioniert. Aber die Variable 'Lng' wird nie initialisiert, woher bekommt sie dann ihren Wert? –

+0

Ich habe ein paar Bits zu der Antwort hinzugefügt, die hoffentlich klarer machen, wie man die Sprache einstellen kann, aber ich merke jetzt, dass das vielleicht nicht das ist, was du meinst. Wenn du meintest, wie die Sprache jetzt für dich eingestellt wird, dann kommt sie von [dieser Funktion] (https://github.com/i18next/i18next/blob/1.11.2/i18next.js#L1843) in i18next, die das erkennt richtige Sprache für die Verwendung von Cookies, localStorage & dann 'window.navigator' Eigenschaften. – joelnb

+0

Das war die Antwort, die ich gesucht habe :) Vielen Dank noch einmal, du hast mir wirklich sehr geholfen! –