Ruby on rails 4 I18n线路轨道

Ruby on rails 4 I18n线路轨道,ruby-on-rails-4,routes,rails-i18n,Ruby On Rails 4,Routes,Rails I18n,我想用英语编程,但我的输出路径必须是另一种语言 今天,我使用以下方法,我没有得到索引操作和新建和编辑仍然缺少翻译。我尝试使用测试:一:另一:,但没有成功 resource :activities, path: I18n.t('routes.test') # config/routes.rb activities POST /teste(.:format) activities#create new_activities GET /teste/new

我想用英语编程,但我的输出路径必须是另一种语言

今天,我使用以下方法,我没有得到
索引
操作和
新建
编辑
仍然缺少翻译。我尝试使用
测试:一:另一:
,但没有成功

resource :activities, path: I18n.t('routes.test')

# config/routes.rb

     activities POST   /teste(.:format)            activities#create
 new_activities GET    /teste/new(.:format)        activities#new
edit_activities GET    /teste/edit(.:format)       activities#edit
                GET    /teste(.:format)            activities#show
                PATCH  /teste(.:format)            activities#update
                PUT    /teste(.:format)            activities#update
                DELETE /teste(.:format)            activities#destroy

# config/locales/routes.yml

fr:
  routes:
    test: "teste"

我如何才能做到这一点?

您应该创建一个routes.yml文件,其中routes:作为主键,并且您要将这些路由翻译更深一层

# config/locales/routes.yml
routes:
  activities: "something_else"
在routes.rb中这样称呼它

resources :activities, path: I18n.t('activities', locale: :routes)
那么您就独立于I18n.locale中设置的语言

输出如下所示:

       Prefix Verb   URI Pattern                        Controller#Action
   activities GET    /something_else(.:format)          activities#index
              POST   /something_else(.:format)          activities#create
 new_activity GET    /something_else/new(.:format)      activities#new
edit_activity GET    /something_else/:id/edit(.:format) activities#edit
     activity GET    /something_else/:id(.:format)      activities#show
              PATCH  /something_else/:id(.:format)      activities#update
              PUT    /something_else/:id(.:format)      activities#update
              DELETE /something_else/:id(.:format)      activities#destroy
编辑:如果您还想翻译新内容并进行编辑,您可以执行以下操作:

scope(path_names: { new: I18n.t('new', locale: :routes), edit: I18n.t('edit', locale: :routes) }) do
  resources :activities, path: I18n.t('activities', locale: :routes)
end

或者您可以在routes.rb中重写它,就像在

中提到的那样。您应该创建一个routes.yml文件,将routes:作为主键,并将您要转换的路由更深一层

# config/locales/routes.yml
routes:
  activities: "something_else"
在routes.rb中这样称呼它

resources :activities, path: I18n.t('activities', locale: :routes)
那么您就独立于I18n.locale中设置的语言

输出如下所示:

       Prefix Verb   URI Pattern                        Controller#Action
   activities GET    /something_else(.:format)          activities#index
              POST   /something_else(.:format)          activities#create
 new_activity GET    /something_else/new(.:format)      activities#new
edit_activity GET    /something_else/:id/edit(.:format) activities#edit
     activity GET    /something_else/:id(.:format)      activities#show
              PATCH  /something_else/:id(.:format)      activities#update
              PUT    /something_else/:id(.:format)      activities#update
              DELETE /something_else/:id(.:format)      activities#destroy
编辑:如果您还想翻译新内容并进行编辑,您可以执行以下操作:

scope(path_names: { new: I18n.t('new', locale: :routes), edit: I18n.t('edit', locale: :routes) }) do
  resources :activities, path: I18n.t('activities', locale: :routes)
end

或者您可以在routes.rb中重写它,就像在

中提到的那样。您应该创建一个routes.yml文件,将routes:作为主键,并将您要转换的路由更深一层

# config/locales/routes.yml
routes:
  activities: "something_else"
在routes.rb中这样称呼它

resources :activities, path: I18n.t('activities', locale: :routes)
那么您就独立于I18n.locale中设置的语言

输出如下所示:

       Prefix Verb   URI Pattern                        Controller#Action
   activities GET    /something_else(.:format)          activities#index
              POST   /something_else(.:format)          activities#create
 new_activity GET    /something_else/new(.:format)      activities#new
edit_activity GET    /something_else/:id/edit(.:format) activities#edit
     activity GET    /something_else/:id(.:format)      activities#show
              PATCH  /something_else/:id(.:format)      activities#update
              PUT    /something_else/:id(.:format)      activities#update
              DELETE /something_else/:id(.:format)      activities#destroy
编辑:如果您还想翻译新内容并进行编辑,您可以执行以下操作:

scope(path_names: { new: I18n.t('new', locale: :routes), edit: I18n.t('edit', locale: :routes) }) do
  resources :activities, path: I18n.t('activities', locale: :routes)
end

或者您可以在routes.rb中重写它,就像在

中提到的那样。您应该创建一个routes.yml文件,将routes:作为主键,并将您要转换的路由更深一层

# config/locales/routes.yml
routes:
  activities: "something_else"
在routes.rb中这样称呼它

resources :activities, path: I18n.t('activities', locale: :routes)
那么您就独立于I18n.locale中设置的语言

输出如下所示:

       Prefix Verb   URI Pattern                        Controller#Action
   activities GET    /something_else(.:format)          activities#index
              POST   /something_else(.:format)          activities#create
 new_activity GET    /something_else/new(.:format)      activities#new
edit_activity GET    /something_else/:id/edit(.:format) activities#edit
     activity GET    /something_else/:id(.:format)      activities#show
              PATCH  /something_else/:id(.:format)      activities#update
              PUT    /something_else/:id(.:format)      activities#update
              DELETE /something_else/:id(.:format)      activities#destroy
编辑:如果您还想翻译新内容并进行编辑,您可以执行以下操作:

scope(path_names: { new: I18n.t('new', locale: :routes), edit: I18n.t('edit', locale: :routes) }) do
  resources :activities, path: I18n.t('activities', locale: :routes)
end
或者您可以在routes.rb中重写它,如中所述