密钥或标签中的i18next json点

Sve*_*lis 8 i18next

JS: i18n.t("SOME TEXT TO BE TRANSLATED.")

JSON: "SOME TEXT TO BE TRANSLATED.": "Een stukje tekst om te vertalen"

i18n.t("SOME TEXT TO BE TRANSLATED.") 给我 "SOME TEXT TO BE TRANSLATED.".

如果我删除"." (点)来自标签和函数t,而不是文本被翻译.

怎么解决这个?

Pet*_*ter 10

文档说明默认情况下将dot视为键分隔符.您可以

  • 用.替换点 .
  • 把点放在翻译的字符串之外 i18n.t("SOME TEXT TO BE TRANSLATED") + "."
  • 更改密钥分隔符

    您可以通过在init上设置选项来更改命名空间和/或键分隔符:

    nsseparator = ':::'
    keyseparator = '::'
    
    Run Code Online (Sandbox Code Playgroud)


Adi*_*mar 9

您可以在 init 选项中设置 "keySeparator" : false 。


Che*_* Wu 0

您可以尝试使用https://github.com/cheton/i18next-text。它允许您使用 i18next 翻译,而无需将密钥作为字符串,并且您无需担心 i18n 密钥命名。此外,您还可以向 Handlebars 注册 i18n 帮助程序。

下面是一个简单的例子:

var i18n = require('i18next');

// extends i18n object to provide a new _() method
i18n._ = require('i18next-text')._;

i18n._('Save your time and work more efficiently.');
Run Code Online (Sandbox Code Playgroud)

查看JSFiddle 上的演示。