i18next中的语言变量

时间:2016-05-04 14:46:22

标签: javascript internationalization i18next

我正在使用i18next来实现应用程序的国际化。

我正在初始化它:

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

变量__lng____ns__代表什么?

1 个答案:

答案 0 :(得分:0)

  • __lng__是要加载的语言
  • __ns__是要加载的命名空间

基本上,这意味着如果您使用lng: 'en-US'进行初始化,则会尝试加载:

  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'
  4. 因为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),这将非常有用,这样任何不受支持的语言都将回退到默认语言。如果您只允许从预先批准的值中进行选择,则可能不需要这样做。