我正在尝试将国际化功能添加到我的网站。
我编写了自己的I18n.js,它使用DS.store中的翻译对象而不是自己的(因此有一个翻译模型,Ember会在Application-start上预加载它)。
要将我的翻译到模板中,我已经编写了这个把手 - 助手
Ember.Handlebars.registerHelper('i18n', function(key) {
return Application.I18n.t(key);
});
所以我可以轻松地使用它:
{{i18n example_key}}
到目前为止,一切都很完美。 但是屏幕上可见的翻译并不与其翻译模型绑定。
如果我在管理页面中更改了翻译,那么我必须重新加载页面。
是否可以在助手和助手必须显示的翻译模型之间添加绑定?
谢谢
答案 0 :(得分:0)
使用registerBoundHelper代替registerHelper
。我甚至认为registerHelper
不是公共API的一部分。
答案 1 :(得分:0)
Application.I18n
到底是什么样的?为了使{{i18n}}
助手在更改内容时刷新其内容,需要观察可观察的内容。
Ember.Handlebars.helper
非常有用(请参阅http://emberjs.com/guides/templates/writing-helpers/#toc_dependencies)。但是,如果您只将字符串作为字符串传递,则必须以某种方式自行设置绑定。