[英]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.