4

EmberJS 是否支持国际化应用程序的翻译路由?还是至少可以轻松扩展它以支持 i18n 路由?有这方面经验的人吗?

例如,路由字符串可以通过语言环境文件以某种方式动态设置吗?此外,使用 Ember 和 Rails 路由时不必指定两次也会很酷……是这样吗?

我是 Ember 的新手(目前正在评估 js 框架),但我假设通常使用 Rails 的人会简单地从 Rails 中指定非常基本的路由,其余的在 Ember 中?所以不会有太多的重复吗?想知道是否可以使用 Rails 的语言环境文件来查找路线翻译。

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

4

3 回答 3

6

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

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

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());
    }
});
于 2012-06-18T11:07:41.563 回答
4

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

它会帮助你处理你的字符串,但目前还没有处理翻译 URL 的解决方案。

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

于 2012-06-18T11:11:38.997 回答
3

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

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

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

于 2012-06-18T10:10:45.213 回答