在我的雙語軌道4應用程序,我有一個LocalesController
這樣的:如何通過URL更改區域設置?
class LocalesController < ApplicationController
def change_locale
if params[:set_locale]
session[:locale] = params[:set_locale]
url_hash = Rails.application.routes.recognize_path URI(request.referer).path
url_hash[:locale] = params[:set_locale]
redirect_to url_hash
end
end
end
用戶可以通過這種形式改變了他的語言環境:
def locale_switcher
form_tag url_for(:controller => 'locales', :action => 'change_locale'), :method => 'get', :id => 'locale_switcher' do
select_tag 'set_locale', options_for_select(LANGUAGES, I18n.locale.to_s)
end
這工作。
但是,現在用戶無法通過URL更改語言。
E.g.如果用戶在頁面www.app.com/en/projects
上,然後手動將URL更改爲,他應該請參閱該頁面的法語版本,但沒有任何反應。
這在許多Rails應用程序中可能並不重要,但在我的系統中它非常重要。
如何解決?
感謝您的任何幫助。
您需要檢查並調整適當的路由規則以處理特定於語言環境的路徑。 – 2014-10-12 16:11:05