module TranslationIO::Controller

Public Instance Methods

extract_browser_locale(http_accept_language) click to toggle source
# File lib/translation_io/controller.rb, line 22
def extract_browser_locale(http_accept_language)
  http_accept_language.to_s.scan(/[a-z]{2}(?:-[A-Z]{2})?/).detect do |candidate|
    I18n.available_locales.include?(candidate.to_sym)
  end
end
set_locale() click to toggle source
# File lib/translation_io/controller.rb, line 3
def set_locale
  requested_locale = params[:locale]                                             ||
                     session[:locale]                                            ||
                     cookies[:locale]                                            ||
                     extract_browser_locale(request.env['HTTP_ACCEPT_LANGUAGE']) ||
                     I18n.default_locale

  if I18n.available_locales.include?(requested_locale.to_sym)
    session[:locale] = requested_locale
    I18n.locale      = requested_locale
  else
    if respond_to?(:root_path)
      redirect_to root_path(:locale => I18n.default_locale)
    else
      redirect_to "/?locale=#{I18n.default_locale}"
    end
  end
end