Method: Symphonia::ControllerExtensions#set_locale
- Defined in:
- lib/symphonia/controller_extensions.rb
#set_locale ⇒ Object
private
78 79 80 81 82 83 84 85 86 87 |
# File 'lib/symphonia/controller_extensions.rb', line 78 def set_locale client_lang = Array(params.fetch(:locale, nil).presence || session[:locale].presence || request.env['HTTP_ACCEPT_LANGUAGE'].to_s.split(',').collect { |l| l.scan(/^[a-z]{2}/) }.flatten) client_lang.unshift current_user.language if current_user.language @client_lang = client_lang.detect { |l| I18n.available_locales.include?(l.to_sym) } I18n.locale = (@client_lang || I18n.default_locale) session[:locale] = I18n.locale logger.debug "* Locale set to '#{I18n.locale}'" end |