Method: Symphonia::ControllerExtensions#set_locale

Defined in:
lib/symphonia/controller_extensions.rb

#set_localeObject

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