i18nextify不会在javascript函数中翻译

时间:2018-02-11 22:04:48

标签: javascript node.js dojo i18next

this示例之后,我能够将语言环境添加到我的应用程序并在html / Jade中翻译字符串。

例如,给定这个translation.json文件:

import EmberObject, { computed } from '@ember/object';
import Component from '@ember/component';
import { oneWay } from '@ember/object/computed';

user = EmberObject.create({
  fullName: 'Kara Gates'
});

UserComponent = Component.extend({
  userName: oneWay('user.fullName')
});

userComponent = UserComponent.create({
  user: user
});

// Changing the name of the user object changes
// the value on the view.
user.set('fullName', 'Krang Gates');
// userComponent.userName will become "Krang Gates"

// ...but changes to the view don't make it back to
// the object.
userComponent.set('userName', 'Truckasaurus Gates');
user.get('fullName'); // "Krang Gates"

我可以把它放在我的Jade页面中:

{
    "test": "prova"
}

现在我使用上面链接的相同配置选项。 什么不起作用的是javascript函数中的翻译,例如:

label test

它没有翻译字符串" test"到" prova"喜欢在html代码中输入几行。 在github示例中,作者做了类似的事情:

script(type="text/javascript").
    require([
        "dojo/ready",
        "dojo/dom",
        "dojo/on",
        "dojo/request/xhr",
        "dojo/domReady!"
    ], function (ready, dom, on, xhr) {
        console.log("dom ready");
        console.log("test");
    });

其中"点击我"是翻译文件中可用的字符串。 因此,我猜它应该翻译我的

var t = document.createTextNode("CLICK ME");

我错过了什么?

1 个答案:

答案 0 :(得分:1)

示例确实有效,因为我们将该节点附加到dom - > i18nextify使用虚拟化实现并自动解析和翻译dom内容。

您可以使用底层的i18next实例直接翻译javascript内容。

console.log(i18nextify.i18next.t('dom ready')); - >对于文档,请参阅http://i18next.com