Ember.I18n
Summary
Ember国际化支持
Ember.I18n更多内容查看...
在Ember.I18n.translations中存入你所需要的国际化信息键值对,
对于值的类型为字符串的键值对,将会通过Ember.I18n.compile编译为模板
*默认使用Handlebars.compile进行模板编译(在项目中需要引入完整的Handlebars功能,换言之,需引入Handlebar.js
而不是Handlebar.runtime.js)
Example
给定以下的国际化信息
Em.I18n.translations = {
"user.edit.title": "Edit User",
"user.followers.title.one": "One Follower",
"user.followers.title.other": "All {{count}} Followers",
"button.add_user.title": "Add a user",
"button.add_user.text": "Add",
"button.add_user.disabled": "Saving..."
};
在模板中只需引入
<h2>{{t "user.edit.title"}}</h2>
编译后结果
<h2><span id="i18n-123">Edit User</span></h2>
默认情况下,t助手将使用span作为标签作为渲染,如果需要进行标签进行自定义,只需特别声明标签
{{t "user.edit.title" tagName="h2"}}
编译后结果
<h2 id="i18n-123">Edit User</h2>
信息重载
默认情况下,可为t助手绑定一个count属性,cout属性将在运行时替换I18n信息
EXample
直接设置count的值
<h2>{{t "user.followers.title" count="2"}}</h2>
编译结果为
<h2><span id="i18n-123">All 2 Followers</span></h2>
绑定Count的值
<h2>{{t "user.followers.title" count="2"}}</h2>
编译结果为
<h2><span id="i18n-123">All 2 Followers</span></h2>
任意对象信息国际化 Ember.I18n.TranslateableProperties mixin 会转换所有以Translation开头的属性
userButton = Em.Object.extend(Em.I18n.TranslateableProperties, {
labelTranslation: 'button.add_user.title'
});
userButton.get('label'); // "Add a user"
对于html类型标签,可以使用TranslateAttr 助手进行语言字段绑定
<a {{translateAttr title="button.add_user.title" data-disable-with="button.add_user.disabled"}}>
{{t "button.add_user.text"}}
</a>
编译结果:
<a title="Add a user" data-disable-with="Saving...">
Add
</a>
复杂类型国际化语法 Em.I18n.translations同样支持复杂JSON对象的定义
Em.I18n.translations = {
'user': {
'edit': {
'title': 'Edit User'
},
'followers': {
'title': {
'one': 'One Follower',
'other': 'All {{count}} Followers'
}
}
},
'button': {
'add_user': {
'title': 'Add a user',
'text': 'Add',
'disabled': 'Saving...'
}
}
};
{{t "button.edit.text"}}
编译结果:
<span id="i18n-123">Edit User</span>