我在app / router.js
中创建了一些路线Router.map(function () {
let i18n = this.service('i18n');
this.route("lang", { path: '/:lang' }, function () {
this.route('home', { path: '/', template: 'home' });
this.route('about', { path: '/' + i18n.t('router.about'), template: 'about' });
this.route('locales', { path: '/' + i18n.t('router.locations'), template: 'locales' });
});
});
但是i18n只是第一次翻译。
如何通过更改语言翻译这些路线?
我正在使用:
ember-cli:2.11.1
节点:7.4.0
ember-i18n:5.0.0
答案 0 :(得分:0)
路线创建一次,您无法更改路线名称。
为了您的目标,您可以这样做:
//router.js
this.route("lang", {path: '/:lang'}, function() {
this.route('register', {path: ':path'});
});
在模板中:
//index.hbs
{{#link-to "lang.register" locale path}}{{t "routes.register"}}{{/link-to}}
并在相应的控制器中:
//controllers/index.js
i18n: Ember.inject.service(),
locale: Ember.computed.readOnly('i18n.locale'),
path: Ember.computed('locale', function() {
return {
path: this.get('i18n').t('routes.register')
};
}),
现在,根据i18n
区域设置更改,您的路线网址已更改。
请查看this twiddle