2013-07-10 86 views
0

這是當前的解決方案。如何避免計算屬性獲得翻譯?

過濾器/ index.hbs

{{view App.CardFilterView labelTranslation="filter.provider.label" controllerBinding="controllers.cardProviders" 
filterName="provider"}} 

{{view App.CardFilterView labelTranslation="filter.rewards.label" controllerBinding="controllers.cardRewards" 
filterName="rewards"}} 

card_filter.hbs

CardFilterView

label: (-> 
    Ember.I18n.t @get('labelTranslation') 
).property('labelTranslation') 

我能以某種方式去沒有計算財產,做這樣的事情:

<h3>{{t view.label}}</h3>? (這當然不起作用)

回答

1

你可以做到這一點的一種方法是通過定義一個把手幫手來完成這項工作。

事情是這樣的:

Ember.Handlebars.registerBoundHelper('i18n', function(key) { 
    return new Handlebars.SafeString(Ember.I18n.t(key)) 
}); 

,然後用它像這樣:

<h3>{{i18n view.label}}</h3> 

希望它能幫助。

0

我知道這是一種古老的線程,這是功能沒有落實在答案。

#### Translate attributes on a plain tag: 
    <a {{translateAttr title="button.add_user.title">text</a> 

這是來自v1.6.0(2014-02-06)以來的ember-i18n文檔。

謝謝changelog。