Я добавляю I18N в мое приложение rails, передавая локаль с помощью параметров url. Мои URL-адреса выглядят как http://example.com/en/users и http://example.com/ar/users (для английского и арабского языков соответственно).
В моем файле маршрутов я определил свои маршруты с помощью опции: path_prefix:
map.resources :users, :path_prefix => '/:locale'
И locale устанавливается с использованием параметра before_filter, определенного в ApplicationController
def set_locale
I18n.locale = params[:locale]
end
Я также определил ApplicationController # default_url_options, чтобы добавить локаль ко всем URL-адресам, сгенерированным приложением:
def default_url_options(options={})
{:locale => I18n.locale}
end
Я хочу добавить ссылку в заголовок макета (отображается на всех страницах), которая будет ссылаться на одну и ту же страницу, но с другой локалью.
Например, если я просматриваю арабский язык, я хочу, чтобы в заголовке была "английская" ссылка, которая перенаправит меня на мою текущую страницу и установит язык на английский. Есть ли способ сделать это в рельсах?