簡體   English   中英

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

[英]i18n - How to use it in application.hbs?

我應該在哪個路由/組件中注入“ i18n”服務,以便在application.hbs中使用它? 我正在嘗試在其他HBS文件中使用它,並且如果將“ i18n”注入到路由/組件中,則可以使用它。

但這在application.hbs中不起作用

通常,您不必注入i18n服務即可使用t helper,這通常是從模板執行的操作。

但是通常,如果要在路由模板中使用服務,則需要將其注入控制器。 因此,您需要將服務注入到application控制器中才能在application模板上使用它。

您可以使用實例初始化程序來完成此操作,並使用以下代碼將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
};

您可以看一下這個玩笑

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM