我的项目需要支持3种不同的语言。我们使用Emberjs进行开发。
因此,为了实现翻译,我遵循了以下URL中提供的教程
http://eviltrout.com/2013/11/24/i18n-in-ember.html
我已经包含了以下网址中的i18n.js
https://github.com/fnando/i18n-js/blob/master/vendor/assets/javascripts/i18n.js
进入我的项目然后我创建了一个名为translation.js的文件,内容为
I18n.translations = {
en: {
savingquote: 'savings made simple'
},
hi: {
savingquote: 'बचत सरल बनाया'
},
es : {
savingquote:'ahorros de forma sencilla'
}
};
在我的项目中,我将视图页面称为{{i18n savingquote}}
。并使用以下代码为我的app.js添加了一个帮助器
Ember.Handlebars.registerHelper('i18n', function(property, options) {
var params = options.hash,
self = this;
// Support variable interpolation for our string
Object.keys(params).forEach(function (key) {
params[key] = Em.Handlebars.get(self, params[key], options);
});
return I18n.t(property, params);
});
现在我的要求是在不重新加载的情况下更改项目的语言。所以在我的语言更改功能中添加I18n.locale = 'hi';
。但车把出现在默认语言英语。
欢迎您的评论。
答案 0 :(得分:1)
我认为没有必要重新加载页面,但您需要刷新/重新呈现活动的余烬view
,因为翻译不是绑定属性。
免责声明:尚未使用具体实现,但已实现了类似的功能,支持ember应用程序(代码和模板)和html部分(模板外)。