i18n - 如何在application.hbs中使用它?

时间:2017-11-15 10:31:44

标签: javascript ember.js internationalization handlebars.js ember-i18n

我应该在哪个路线/组件中注入" i18n"在application.hbs中使用它的服务? 我试图在其他HBS文件中使用它,如果我注入" i18n"进入路线/组件 - 我能够使用它。

但它只是不在application.hbs中工作

2 个答案:

答案 0 :(得分:1)

通常,您不必注入rsconnect::setAccountInfo(name='xx', token='xx', secret='xx/xx') library(rsconnect) deployApp("xxx",launch.browser = FALSE) Y 服务即可使用i18n帮助程序,这是您通常从模板中执行的操作。

但通常,如果要在路径模板中使用服务,则需要将服务注入控制器。因此,您需要将服务注入t控制器,以便在application模板上使用它。

答案 1 :(得分:0)

您可以使用实例初始化程序并使用此代码将i18n服务注入所有路由和组件来执行此操作:

<强> /instance-initializers/component-route-i18n-injector.js

import Ember from 'ember';

export function initialize(appInstance) {

  let i18n = appInstance.lookup('service:i18n');
  Ember.Component.reopen({
    i18n: i18n
  });
  Ember.Controller.reopen({
    i18n: i18n
  });
}

export default {
  name: 'component-route-i18n-injector',
  initialize
};

您可以查看此twiddle