Rails Интернационализация и красивые URL - PullRequest
1 голос
/ 12 сентября 2011

Я просто хочу интернационализировать свое приложение Rails, чтобы URL выглядел следующим образом: site.com/en/products.

То, что я сделал, это:

# routes.rb
scope "(:locale)", :locale => /en|es/ do
  resources :pages
end

# application_controller.rb
def default_url_options(options={})
  logger.debug "default_url_options is passed options: #{options.inspect}\n"
  { :locale => I18n.locale }
end

Но при этом я получаю URL-адреса вроде site.com/products/?locale=en. Как я могу получить эти красивые URL-адреса?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 12 сентября 2011

Мы используем для этого гем i18n_routing.

Если вы добавите его в свой проект, вы можете сделать что-то подобное в вашем config / rout.rb

localized do
  resources :articles
end

В вашей конфигурацииФайл /locales/nl.yml: (для голландской маршрутизации)

nl:
  resources:
    articles: 'nieuws'

Откат будет / article /: id.А голландские посетители получают / nieuws /: id url

1 голос
/ 14 сентября 2011

попробуй

url_for :controller => 'pages', :id => 'thepageiwant', :locale => locale 
...