【问题标题】:Ember.js Handlebars globalization approachEmber.js Handlebars 全球化方法
【发布时间】:2012-03-07 20:31:07
【问题描述】:

我正在尝试在我的 Rails 应用中使用 ember.js。

有一个特定于全球化处理程序栏视图模板内容的问题。

我应该尝试创建 myview.handlebars.erb 并在服务器端翻译字符串(还没有尝试过),还是应该为每种语言创建单独的车把模板(除非有更清洁的方法,否则听起来并不像真的干) ?

理想的方法是什么?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3.1 ember.js handlebars.js


    【解决方案1】:

    Ember-I18n 提供解决方案:https://github.com/jamesarosen/ember-i18n

    【讨论】:

    • 这是一个有问题的方法,因为您以一个充满诸如“user.followers.title.other”之类的无意义字符串的模板结尾。在模板中应该这样写:'All {{count}} Followers',这样你就可以理解你在布局什么。更好地将 Jed.js 或其他 gettext 解决方案包装在帮助程序中。
    【解决方案2】:

    您对这项工作感到满意吗?

    另一种选择(我们在http://travis-ci.org 使用的)是 i18n-js。 我们喜欢它,因为它可以让您将所有本地化文件保存在同一个位置 (config/locales/[x].yml) 并自动将它们添加到您的资产路径中。

    部分干燥的东西;)

    您的车把中的语法几乎相同,我们只是一个车把助手

    Handlebars.registerHelper('i18n', function(key) {
      return new Handlebars.SafeString(I18n.t(key))
    });
    

    然后在车把视图中 {{i18n "path.to.translation"}}。

    【讨论】:

    • 其他答案中标记的问题解决方案。
    • 我想在{{bindAttr ... title="i18n 'path.to.translation'" }} 范围内使用它,我该怎么做?
    猜你喜欢
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2010-11-18
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多