module Tight::Engine::Locale
Private Instance Methods
detect_preferred_locale()
click to toggle source
# File lib/tight-engine/locale.rb, line 23 def detect_preferred_locale detected_locale = if preferred_languages = request.env['HTTP_ACCEPT_LANGUAGE'] (parse_http_accept_language(preferred_languages) & swift.locales).first end detected_locale ||= swift.locales.first detected_locale.to_sym end
detect_selected_locale()
click to toggle source
# File lib/tight-engine/locale.rb, line 6 def detect_selected_locale selected_locale = params[:locale].to_s[0..1] if swift.locales.include?(selected_locale) selected_locale.to_sym else detect_session_locale end end
detect_session_locale()
click to toggle source
# File lib/tight-engine/locale.rb, line 15 def detect_session_locale if session[:locale].present? && swift.locales.include?(session[:locale].to_s) session[:locale].to_sym else detect_preferred_locale end end
parse_http_accept_language( languages )
click to toggle source
# File lib/tight-engine/locale.rb, line 31 def parse_http_accept_language( languages ) languages.gsub(/\s+/,'').split(/,/) .sort_by{ |tags| -(tags.partition(/;/).last.split(/=/)[1]||1).to_f } .map{ |language| language[0..1] }.uniq rescue # !!! FIXME detect valid Exceptions [] end