Использование i18n в Mixin?

Есть ли способ использовать i18n в Mixin. Я хотел бы создать Mixins в качестве конфигурации для моих полей, и мне нужно переводить метки, но насколько я прочитал https://github.com/jamesarosen/ember-i18n/wiki/Doc:-i18n-Service Я не вижу возможности реализовать это.

1 ответ

Решение

Как отметил Китлер, вы можете добавить сервис i18n в свои миксины, чтобы использовать их в своих компонентах.

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

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

Что вы ожидаете больше? Хотите изменить все метки как Декоратор? Если вы хотите украсить метку компонента с помощью миксина, чем вы должны сделать:

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')));
  }
});
Другие вопросы по тегам