我正在使用l20n的保龄球版本来本地化一个成员-cli应用程序。
我使用以下流程来本地化应用程序:
在车把模板中:
{{l20n-helper 'stringVariable'}}在余烬助手中:
export function translate(word){
return Ember.l20n.getSync(word);
}
export default Ember.Handlebars.makeBoundHelper(translate);这是可行的,但我只是将一个全局变量标记到了Ember上,以便使帮助程序可以访问l20n上下文。我知道这不是最好的做法。我正在研究如何创建一个只用于存储ES6上下文对象的l20n模块。这样,在我的余烬帮手里面,我就可以做:
import l20n from "/????"并防止l20n对象陷入应用程序的其余部分。
提前感谢您的帮助!
更新:
一个解决方案是使用application.register,如下所示:
application.register('l20n:main', ctx, {instantiate: false});但是,我的问题将是从我的助手访问容器。这是:
var l20n = this.container.lookup('l20n:main');不会工作,因为容器是不可用的帮助!
发布于 2015-02-19 18:29:35
所以,原来我的助手已经可以访问这个容器了!只有这样我才能让它发挥作用:
import Ember from 'ember';
export function translate(word) {
var ctx = this.container.lookup('l20n:main');
return ctx.getSync(word);
}
export default Ember.Handlebars.makeBoundHelper(translate);https://stackoverflow.com/questions/28598736
复制相似问题