EmberJS:使用i18n库的翻译不起作用?

时间:2013-12-18 12:50:51

标签: javascript html5 ember.js

我的项目需要支持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';。但车把出现在默认语言英语。

欢迎您的评论。

1 个答案:

答案 0 :(得分:1)

我认为没有必要重新加载页面,但您需要刷新/重新呈现活动的余烬view,因为翻译不是绑定属性。

免责声明:尚未使用具体实现,但已实现了类似的功能,支持ember应用程序(代码和模板)和html部分(模板外)。