Я новачок у рейках (використовуючи 3.2.1), і я дотримувався інструкції i18n напрямні напрямні.
У мене з цим розділом проблеми:
Ви, мабуть, хочете, щоб URL-адреси виглядали так: www.example.com/uk/books (яка завантажує англійську мову) та www.example.com/nl/books (яка завантажує місцевість Нідерландів). Цього можна досягти за допомогою Стратегія "перевитрати default_url_options" зверху: у вас просто є налаштувати маршрути за допомогою параметра path_prefix таким чином
Але коли я використовую <% = products_path%> у своїх переглядах, він повертає: / products? locale = en і я хочу, щоб він повернувся / nl / продукти
Коли я набираю URL-адресу в браузері (наприклад, localhost: 3000 / nl / products), на сторінці відображається правильна мова.
Що мені не вистачає?
Контроль додатків:
class ApplicationController < ActionController::Base
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
def default_url_options(options = {})
{ :locale => I18n.locale }
end
end
маршрути:
scope "/:locale" do
resources :products
end
match "/:locale" => "products#index"
рейк-маршрути:
products GET /products(.:format) products#index
POST /products(.:format) products#create
new_product GET /products/new(.:format) products#new
edit_product GET /products/:id/edit(.:format) products#edit
product GET /products/:id(.:format) products#show
PUT /products/:id(.:format) products#update
DELETE /products/:id(.:format) products#destroy
GET /:locale/products(.:format) products#index
POST /:locale/products(.:format) products#create
GET /:locale/products/new(.:format) products#new
GET /:locale/products/:id/edit(.:format) products#edit
GET /:locale/products/:id(.:format) products#show
PUT /:locale/products/:id(.:format) products#update
DELETE /:locale/products/:id(.:format) products#destroy
/:locale(.:format) products#index
root / products#index
Відповіді:
1 для відповіді № 1Що про використання path_prefix
варіант замість цього
def default_url_options(options = {})
{ :path_prefix => I18n.locale }
end
0 для відповіді № 2
Я опинився на користь rails-translate-routes дорогоцінний камінь.
Це дало мені очікуваний результат + можна перекласти маршрути, що є великим надлишком.