15

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,而不是文本被翻译。

如何解决这个问题?

4

3 回答 3

20

文档解释说,点默认被视为键分隔符。你可以

  • 将点替换为.
  • 将点放在翻译后的字符串之外i18n.t("SOME TEXT TO BE TRANSLATED") + "."
  • 更改键分隔符

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

    nsSeparator: ':::'
    keySeparator: '::'
    
于 2015-12-02T08:10:31.183 回答
9

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

于 2017-06-28T10:03:54.797 回答
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.');

查看JSFiddle 上的演示。

于 2015-03-17T14:51:33.693 回答