Handlebars.js& i18n-js,新帮手

时间:2012-01-06 10:14:39

标签: ruby-on-rails internationalization javascript handlebars.js

我想在客户端使用 Handlebars 和Ruby的 i18n-js gem(在Rails 3应用程序上)翻译我的i18n密钥。据你说,什么可能是这样的Handlebars助手?

根据目前的Handlebars版本,默认帮助器如下所示:

Handlebars.registerHelper('if', function(context, options) {
  var type = toString.call(context);
  if(type === functionType) { context = context.call(this); }

  if(!context || Handlebars.Utils.isEmpty(context)) {
    return options.inverse(this);
  } else {
    return options.fn(this);
  }
});

Handlebars.registerHelper('unless', function(context, options) {
  var fn = options.fn, inverse = options.inverse;
  options.fn = inverse;
  options.inverse = fn;

  return Handlebars.helpers['if'].call(this, context, options);
});

Handlebars.registerHelper('with', function(context, options) {
  return options.fn(context);
});

Handlebars.registerHelper('log', function(context) {
  Handlebars.log(context);
});

关于i18n-js宝石,它似乎是一个很好的组合。例如,这个lib在Ember.js中使用(如ember-i18n)。是否已经有关于Handlebars.js和i18n的最佳实践?

感谢您提出任何建议。

1 个答案:

答案 0 :(得分:2)

我用i18n-js写了一个把手帮手。这应该很适合您的需求: https://stackoverflow.com/a/8796912/499700