如何配置i18next以在JSON中查找嵌套值?

时间:2019-07-09 09:32:45

标签: javascript i18next

我具有以下i8next配置

i18next.init({
  lng: 'en',
  debug: true,
  resources: {
    en: {
      translation: {
        loadPath: '../locales/en.json'
      }
    },
    nl: {
      translation: {
        loadPath: '../locales/nl.json'
      }
    }
  }
});

我希望能够加载类似的翻译

{
  "commands": {
    "help": {
      "description": "Some description."
    }
  }
}

首选用法是:t('commands.help.description')

我该怎么做?

2 个答案:

答案 0 :(得分:0)

提到的是开箱即​​用的。您还应该考虑使用i18next namespacing

答案 1 :(得分:0)

我不确定为什么不能这样做,但我附上了一个例子:

check line 28: i18next.t('help.welcome') 

https://jsfiddle.net/orestes22/gw2x7uvd/7/

此外,您还可以在官方页面上找到更多信息:

https://github.com/i18next/i18next-gitbook/blob/master/overview/getting-started.md

另外,请检查您的代码,名称空间是“ translation”,但您使用的是“ commands”,因此您必须像这样写代码t('help.description')

名称空间“ translation”是默认名称空间,但是如果您要使用自定义名称,请遵循以下说明: 这里有一个带有不同名称空间的“ init”示例:https://www.i18next.com/principles/namespaces

在这里您会发现它说“翻译是默认名称空间”的位置:https://www.i18next.com/overview/configuration-options

我希望我能为您提供帮助 最好的问候