Set locale to session

This commit is contained in:
manson 2014-05-14 12:07:51 +08:00
parent 45288d8bfb
commit f168ce7516
1 changed files with 18 additions and 1 deletions

View File

@ -10,7 +10,24 @@ class ApplicationController < ActionController::Base
end end
def set_locale def set_locale
I18n.locale = params[:locale] || I18n.default_locale in_use_locales = current_site.in_use_locales
if params[:locale]
session[:locale] = in_use_locales.include?(params[:locale].to_sym) ? params[:locale] : nil
end
if !params[:locale] and !session[:locale]
if current_site.enable_language_detection
browser_locale = request.env['HTTP_ACCEPT_LANGUAGE'].split(',').first.underscore rescue nil
session[:locale] = in_use_locales.include?(browser_locale.to_sym) ? browser_locale : nil
elsif current_site.default_locale
session[:locale] = current_site.default_locale
end
end
session[:locale] = session[:locale].blank? ? I18n.default_locale : session[:locale]
I18n.locale = session[:locale]
end end
def get_layout def get_layout