I18n在EmberJS(路由和一般)

时间:2012-06-18 09:50:32

标签: ruby-on-rails internationalization routing ember.js ember-router

EmberJS是否支持国际化应用的翻译路线?或者它是否至少可以轻松扩展它以支持i18n路线?有经验的人吗?

E.g。可以通过某种方式从路由文件中动态设置路由字符串吗?使用Ember和Rails路由也不会被指定两次......这样会很酷吗?

我是Ember的新手(目前正在评估js框架)但是我一般认为Rails只能在Rails中指定非常基本的路由,其余的在Ember中?那么重复不会太多?想知道来自Rails的语言环境文件是否可用于查找路由转换。

作为一个更普遍的问题:Ember是否已经支持I18n?

3 个答案:

答案 0 :(得分:6)

您可以通过重新打开Ember.Route并在初始化时设置本地化路线来实现国际化路线,请参阅此处的示例http://jsfiddle.net/pangratz666/wQXvb/

您必须确保在路由器初始化之前定义了Ember.STRINGS 。字符串查找本身可以通过loc方法完成,如 sly7_7 所述。

Ember.STRINGS = {
    '/all': '/alle',
    '/home/:id': '/zuhause/:id'
};

Ember.Route.reopen({
    init: function() {
        this._super();
        var route = this.get('route');
        if (route) this.set('route', route.loc());
    }
});

答案 1 :(得分:4)

有一个ember-i18n项目:https://github.com/zendesk/ember-i18n

它可以帮助您处理字符串,但目前没有解决方法来处理已翻译的URL。

您可以将任何JS路由库与Ember一起使用。有一个非常简单的Ember.Location协议,用于将您自己的路由库与Ember.Router集成。

答案 2 :(得分:3)

一般问题的部分答案可以在这里找到:

http://docs.emberjs.com/#doc=Ember.String&method=.loc&src=false

我认为这不是一个完整的i18n支持,并且没有一个内置的emberjs。