Многоязыковый сайт, использование локали
Пример использования локали для многоязыкового сайта. Предположим, например, что создается сайт для 3-х языков: Русский, Английский и Украинский.
1. Прописываем в config/routes.rb
... scope ':locale', :constraints => { :locale => /(ru|en|ua)/ } do # тут любые маршруты ... # отображение контент-страниц get ':page' => 'application#page', :as => :page root :to => 'application#index', :as => :locale_root end root :to => 'application#index'
2. В контроллере:
class ApplicationController before_filter do if params[:locale] @locale = params[:locale].to_sym I18n.locale = @locale if I18n.available_locales.include? @locale else I18n.locale = @locale = :ru end end ... protected # значения параметров в ссылке по-умолчанию def default_url_options { locale: @locale } end end
Далее просто используем @locale для правильного отображения контента.