在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");
我错过了什么?
答案 0 :(得分:1)
示例确实有效,因为我们将该节点附加到dom - > i18nextify使用虚拟化实现并自动解析和翻译dom内容。
您可以使用底层的i18next实例直接翻译javascript内容。
console.log(i18nextify.i18next.t('dom ready'));
- >对于文档,请参阅http://i18next.com