From 47405b5b19364ea166db1eea9fe90ed6210d1177 Mon Sep 17 00:00:00 2001 From: Manuel Wiedenmann Date: Thu, 6 Jun 2013 03:18:02 +0200 Subject: [PATCH] fixes locales issue --- lib/foodsoft/controller_extensions.rb | 57 +++++++++++++-------------- 1 file changed, 28 insertions(+), 29 deletions(-) diff --git a/lib/foodsoft/controller_extensions.rb b/lib/foodsoft/controller_extensions.rb index fe8c940f..ea8c5265 100644 --- a/lib/foodsoft/controller_extensions.rb +++ b/lib/foodsoft/controller_extensions.rb @@ -8,43 +8,42 @@ module Foodsoft before_filter :set_locale end - module InstanceMethods - def explicitly_requested_language - params[:locale] - end + def explicitly_requested_language + params[:locale] + end - def session_language - session[:locale] - end + def session_language + session[:locale] + end - def browser_language - request.env['HTTP_ACCEPT_LANGUAGE'] ? request.env['HTTP_ACCEPT_LANGUAGE'].scan(/^[a-z]{2}/).first : nil - end + def browser_language + request.env['HTTP_ACCEPT_LANGUAGE'] ? request.env['HTTP_ACCEPT_LANGUAGE'].scan(/^[a-z]{2}/).first : nil + end - def default_language - ::I18n.default_locale - end + def default_language + ::I18n.default_locale + end - protected + protected - def select_language_according_to_priority - explicitly_requested_language || session_language || browser_language - end + def select_language_according_to_priority + language = explicitly_requested_language || session_language || browser_language + language.to_sym unless language.blank? + end - def available_locales - ::I18n.available_locales - end + def available_locales + ::I18n.available_locales + end - def set_locale - if available_locales.include?(select_language_according_to_priority) - ::I18n.locale = select_language_according_to_priority - else - ::I18n.locale = default_language - end - - locale = session[:locale] = ::I18n.locale - logger.info("Set locale to #{locale}") + def set_locale + if available_locales.include?(select_language_according_to_priority) + ::I18n.locale = select_language_according_to_priority + else + ::I18n.locale = default_language end + + locale = session[:locale] = ::I18n.locale + logger.info("Set locale to #{locale}") end end