class ActionController::Base

Public Instance Methods

set_locale() click to toggle source
# File lib/translations_ennder/rails.rb, line 51
                def set_locale
                        # Needs a session
                        return if session[:session_id].blank?

                        _param_locale = params[:locale]
                        if _param_locale.present? && _param_locale.match(/^(en|fr)$/)
                                # Comes from a request parameter
                                I18n.locale = _param_locale
                        elsif session[:locale].blank? && request.env['HTTP_ACCEPT_LANGUAGE'].present?
                                # Comes from the request headers
                                _http_lang_tab = request.env['HTTP_ACCEPT_LANGUAGE'].scan(/^[a-z]{2}/)
                                if _http_lang_tab.present? && _http_lang_tab.first.present?
                                        if _http_lang_tab.first.match(/^(en|fr)$/)
                                                I18n.locale = _http_lang_tab.first
                                        else
                                                set_locale_session_or_fr
                                        end
                                else
                                        set_locale_session_or_fr
                                end
                        else
                                set_locale_session_or_fr
                        end

#                       logger.debug "GEM translations_ennder, locale=[#{session[:locale]}]"

                        if session[:locale] != I18n.locale
                                logger.debug "GEM translations_ennder, set_locale [#{session[:locale]}]=>[#{I18n.locale}]"
                                session[:locale] = I18n.locale
                        end
                end
set_locale_session_or_fr() click to toggle source
# File lib/translations_ennder/rails.rb, line 83
def set_locale_session_or_fr
        # Comes from the session or not provided
        I18n.locale = session[:locale] || :fr
end