假设我有这样的观点:
<script type="text/x-handlebars" data-template-name="say-hello">
Hello, <b>{{name}}</b>
</script>
如何使用内置的 Ember.String.loc() 本地化单词“Hello”?我在文档/代码中没有看到解决方案。
假设我有这样的观点:
<script type="text/x-handlebars" data-template-name="say-hello">
Hello, <b>{{name}}</b>
</script>
如何使用内置的 Ember.String.loc() 本地化单词“Hello”?我在文档/代码中没有看到解决方案。
我现在正在使用内置本地化。
为此,可以创建一个“简单”视图助手:http ://gist.github.com/3093861 :
Handlebars.registerHelper('loc', function(property, fn) {
var str;
// we are bound to a value, it is now the context
if (fn.contexts && typeof fn.contexts[0] === 'string') {
str = fn.contexts[0];
// Convention, start all localization keys with _
} else if (property[0] === '_') {
str = property;
// Convention, start all globals with capital
} else if (/[A-Z]/.test(property[0])) {
str = Em.getPath(window, property)
// all other's are local properties
} else {
str = this.getPath(property)
}
return new Handlebars.SafeString((str || '').loc(''));
});
// use:
// {{loc _some_string}}
// {{#bind App.someString}}{{loc App.someString}}{{/bind}}
// {{#bind view.localString}}{{loc view.localString}}{{/bind}}
但这并不像应有的那样干净,请注意绑定值需要如何包装{{#bind}}
仍然对更好的选择持开放态度。(我想我可以更新视图助手以支持绑定,但尚未进一步调查)