1
我正在使用i18next
來進行應用程序的國際化。i18next中的語言變量
我初始化這樣的:
i18n.init({debug: false, getAsync: false, resGetPath: _this.buildPath + _this.i18nPath + '__lng__/__ns__.json'});
變量__lng__
和__ns__
代表什麼做的?
我正在使用i18next
來進行應用程序的國際化。i18next中的語言變量
我初始化這樣的:
i18n.init({debug: false, getAsync: false, resGetPath: _this.buildPath + _this.i18nPath + '__lng__/__ns__.json'});
變量__lng__
和__ns__
代表什麼做的?
__lng__
是加載__ns__
是加載基本上這意味着,如果你有lng: 'en-US'
初始化它會嘗試加載命名空間的語言:
_this.buildPath + _this.i18nPath + 'en-US/translation.json'
_this.buildPath + _this.i18nPath + 'en/translation.json'
_this.buildPath + _this.i18nPath + 'dev/translation.json'
因爲開發是默認falback語言&翻譯是默認的命名空間。
您可能會發現文檔here很有用,因爲它顯示了使用它們的一些更多方法,具體取決於您的後端如何工作。
編輯:有很多方法來設置加載的語言。最簡單的方法是將值作爲的lng
參數。例如:
i18n.init({
debug: false,
getAsync: false,
lng: _this.language,
fallbackLng: _this.defaultLanguage,
resGetPath: _this.buildPath + _this.i18nPath + '__lng__/__ns__.json'
});
此示例與您的示例相同,但顯式設置語言。我還設置了fallbackLng
,但是如果您以某種方式接受用戶的語言(例如從browser language),以便任何不支持的語言將回退到默認值,則此功能將非常有用。如果您只允許從預先批准的數值中選擇,那麼這可能不是必需的。
非常感謝您的回答!通常我現在明白,它是如何工作的。 但變量'lng'永遠不會被初始化,在那種情況下它從哪裏得到它的值? –
我在答案中增加了一些內容,希望能更清楚地說明你如何設置語言,但現在我意識到這可能不是你的意思。如果你的意思是如何爲你設置語言,那麼它來自於[this function](https://github.com/i18next/i18next/blob/1.11.2/i18next.js#L1843)in i18next,它檢測到從cookies,localStorage和'window.navigator'屬性中使用正確的語言。 – joelnb
這就是我正在尋找的答案:)非常感謝你一次,你真的幫了我很多! –