如何使用本地化文件使Rails 3路由器本地化URL?

edg*_*ner 3 routing localization ruby-on-rails internationalization

我希望能做的是:

在config/routes.rb中

resources :posts
Run Code Online (Sandbox Code Playgroud)

在config/locale/en.yml中

en:
  resources:
    posts: "posts"
    new: "new"
    edit: "edit"
Run Code Online (Sandbox Code Playgroud)

在config/locale/tr.yml中

tr:
  resources:
    posts: "yazilar"
    new: "yeni"
    edit: "duzenle"
Run Code Online (Sandbox Code Playgroud)

得到

I18n.locale = :en
edit_post_path(3) #=> /posts/3/edit

I18n.locale = :tr
edit_post_path(3) #=> /yazilar/3/duzenle
Run Code Online (Sandbox Code Playgroud)

我也希望Rails随时匹配这些路由中的任何一个,并在params哈希中传递相关的语言环境,这样当我导航到时/yazilar,请求应该被路由到params哈希中posts#index:tr语言环境的动作.

这样做的任何简单或复杂的方式?

edg*_*ner 7

Guillaume Luccisano还在http://github.com/kwi/i18n_routing上提供了i18n_routing插件 ,解决了大部分问题,但目前还没有翻译动作名称,如和.Guillaume说他将"尽快"实施.../new../edit

更新:操作名称翻译已在i18n_routing中实施.谢谢纪尧姆.:)