我剛開始研究使用ember-i18n.js進行本地化的現有Ember.js項目。從控制器屬性中獲取ember-i18n.js翻譯密鑰
Ember.Mixin.create({
setupController: function (controller, model) {
controller.set("somePropertyName", "my.translation.key");
}
});
我定義的另一個幫手,讓我得到的,而不是通過它直接從上下文屬性的轉換鍵,例如我可以使用{{tr someContext.someProperty}}
而不是{{t "my.translation.key"}}
。
Ember.Handlebars.registerBoundHelper('tr', function(property, options) {
return Ember.I18n.t(property);
});
我是相當新的灰燼,讓我的思維過程是,我只想能夠換出在我的模板,替換{{tr somePropertyName}}
{{somePropertyName}}
。這沒有用。當我在助手中設置一個斷點時,我發現property
總是未定義的。
我也嘗試修改我的幫手使用Ember.Handlebars.get()
如演示here,但這也解決了undefined。
假設我無法更改翻譯密鑰的來源,是否有從控制器到幫助程序的翻譯密鑰的正確方法?