国际航线 rails
I18n routes rails
我想用英语编程,但我的输出路径必须是另一种语言。
今天我使用了以下方法,但我没有得到 index
操作并且 new
和 edit
仍然缺少翻译。我尝试使用 test: one: other:
但没有成功。
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
或者您可以像 http://guides.rubyonrails.org/routing.html#translated-paths
中提到的那样在 routes.rb 中硬编码覆盖它
我想用英语编程,但我的输出路径必须是另一种语言。
今天我使用了以下方法,但我没有得到 index
操作并且 new
和 edit
仍然缺少翻译。我尝试使用 test: one: other:
但没有成功。
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
或者您可以像 http://guides.rubyonrails.org/routing.html#translated-paths
中提到的那样在 routes.rb 中硬编码覆盖它