我试图在我的应用程序中实现“更改语言”功能。我浏览了官方指南http://guides.rubyonrails.org/i18n.html,一切对我来说都很清楚。不幸的是,我不知道如何解决一个问题。例如,当我通过链接访问登录表单时,/en/login
一切都很好,直到我点击提交表单。
重定向后 param[:locale] 未按预期传递,我得到默认语言环境。是否有任何“Rails-way”灵魂可以重定向到先前选择的语言环境?我想可以将每个 time 参数传递给,redirect_to
但在每个控制器上都这样做有点问题。
我的路线:
scope "(:locale)", :locale => /pl|en/ do
devise_for :users
resources :pages
get "/login" => "sessions#new"
post "/users/sign_in" => "sessions#create"
delete "/users/sign_out" => "sessions#destroy"
root :to => "pages#index"
resources :websites
end
match '/:locale' => 'pages#index'
应用控制器:
class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :set_locale
def set_locale
I18n.locale = params[:locale] || I18n.default_locale
end
end