使用 rails i18n 翻译路径

Translate path with rails i18n

我有一个 rails 4.0.0 应用 运行 friendly_id 和全球化(即使 freindly_id 和全球化对这个问题可能无关紧要)。

我的部分routes.rb是:

scope "(:locale)", locale: /en|de/ do
  resources :mainclasses, :path => :types
end

我现在想要“:path => :types”只是为了英文版(创建一个 url 像 www.website.com/types/etc,德文版应该是 ":path => :typen" (创建 www.website.com/de/typen/etc).

有没有办法根据当前语言环境更改路径?

我建议你看看route_translator gem。它将帮助您将路由转换为任何语言环境,使用范围或子域处理语言环境等。

从你的例子来看,你会有这样的东西:

MyApp::Application.routes.draw do
  localized do
    resources :mainclasses, path: :types
  end
end

连同语言环境文件 routes.yml:

en:
  routes:
    types: types
de:
  routes:
    types: typen

希望对您有所帮助。