我正在使用i18next
来实现应用程序的国际化。
我正在初始化它:
i18n.init({debug: false, getAsync: false, resGetPath: _this.buildPath + _this.i18nPath + '__lng__/__ns__.json'});
变量__lng__
和__ns__
代表什么?
答案 0 :(得分:0)
__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'
因为dev是默认的falback语言& translation是默认命名空间。
您可能会发现文档here很有用,因为它会根据您后端的工作方式显示更多使用它们的方法。
编辑:有很多方法可以设置加载的语言。最简单的方法是将值作为lng
的{{1}}参数传递。这方面的一个例子是:
i18n.init()
此示例与您的示例相同,但显式设置了语言。我还设置了i18n.init({
debug: false,
getAsync: false,
lng: _this.language,
fallbackLng: _this.defaultLanguage,
resGetPath: _this.buildPath + _this.i18nPath + '__lng__/__ns__.json'
});
,但如果您以某种方式接受来自用户的语言(例如来自browser language),这将非常有用,这样任何不受支持的语言都将回退到默认语言。如果您只允许从预先批准的值中进行选择,则可能不需要这样做。