Ember:如何使用i18n lib翻译占位符?

时间:2013-08-05 20:41:42

标签: ember.js

请参阅:http://jsfiddle.net/cyclomarc/36VS3/1/

我正在使用Ember i18n lib进行翻译。如何在Ember.TextField视图中使用已翻译的字符串?

同意textarea视图并选择视图。

<script type="text/x-handlebars">
    <h2>Ember Translate placeholder</h2>
    {{t T1005}}<br>
    {{view Ember.TextField placeholder="T1005"}}
</script>

输入字段中的占位符也应该说'Info',因此不是'T1005'(作为字符串的引用)。

4 个答案:

答案 0 :(得分:6)

你也可以这样做,将Ember.I18n.TranslateableAttributes mixin添加到需要翻译的视图中,如下所示:

Ember.TextField.reopen(Ember.I18n.TranslateableAttributes)

然后将后缀Translation添加到您想要翻译的属性中:

{{view Ember.TextField placeholderTranslation="T1005"}}

请在此处查看更新后的jsfiddle

希望它有所帮助。

答案 1 :(得分:4)

这将转换任何属性,而不仅仅是占位符属性。

翻译文件:

{
    accounts:{
        emailAddress:'Email Address'
    }
}

Handlebars / Ember 标记:

{{input type="email" placeholder=(t 'accounts.emailAddress') }}

标准标记

<input name="email" placeholder=(t 'login.email-placeholder')>

答案 2 :(得分:2)

您可能应该将Ember.TextField子类化,并将占位符添加为计算属性:

App.TextField = Ember.TextField.extend({
    placeholder : function(){
        return Ember.I18n.t("T1005");
    }.property()
});

在手柄模板中使用以下内容:

{{view App.TextField}}

答案 3 :(得分:0)

对我而言,如下所述: https://github.com/jamesarosen/ember-i18n/wiki/Doc:-Translating-Text

<script type="text/x-handlebars">
    <h2>Ember Translate placeholder</h2>
    {{t T1005}}<br>
    {{view Ember.TextField placeholder=(t "T1005")}}
</script>