在Mixin中使用i18n?

时间:2016-04-12 11:27:11

标签: ember.js ember-i18n

有没有办法在Mixin中使用i18n。我想创建Mixins作为我的字段的配置,我需要翻译标签,但据我所知https://github.com/jamesarosen/ember-i18n/wiki/Doc:-i18n-Service我没有看到实现这一点的机会。

1 个答案:

答案 0 :(得分:0)

正如Kitler所说,您可以将i18n服务注入mixin,这样您就可以在组件中使用它们。

export default Ember.Mixin.create({
  i18n: Ember.inject.service(),

  translate: function(key, options) {
    return this.get('i18n').t(key, options);
  }
});

您对更多的期望是什么?是否要将所有标签修改为Decorator?如果你想用mixin来装饰组件的标签,你应该这样做:

export default Ember.Mixin.create({
  i18n: Ember.inject.service(),

  translate: function(key, options) {
    return this.get('i18n').t(key, options);
  },

  init(){ //init or didReceiveAttrs 
    this._super(...arguments);
    this.set('label', this.translate(this.get('label')));
  }
});