##// END OF EJS Templates
Fixed: browser's accept-language subcodes ignored (#1320)....
Jean-Philippe Lang -
r1467:9894a3781e9c
parent child
Show More
@@ -61,11 +61,11 class ApplicationController < ActionController::Base
61 def set_localization
61 def set_localization
62 User.current.language = nil unless User.current.logged?
62 User.current.language = nil unless User.current.logged?
63 lang = begin
63 lang = begin
64 if !User.current.language.blank? and GLoc.valid_languages.include? User.current.language.to_sym
64 if !User.current.language.blank? && GLoc.valid_language?(User.current.language)
65 User.current.language
65 User.current.language
66 elsif request.env['HTTP_ACCEPT_LANGUAGE']
66 elsif request.env['HTTP_ACCEPT_LANGUAGE']
67 accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.split('-').first
67 accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.downcase
68 if accept_lang and !accept_lang.empty? and GLoc.valid_languages.include? accept_lang.to_sym
68 if !accept_lang.blank? && (GLoc.valid_language?(accept_lang) || GLoc.valid_language?(accept_lang = accept_lang.split('-').first))
69 User.current.language = accept_lang
69 User.current.language = accept_lang
70 end
70 end
71 end
71 end
@@ -46,4 +46,11 class WelcomeControllerTest < Test::Unit::TestCase
46 get :index
46 get :index
47 assert_equal :fr, @controller.current_language
47 assert_equal :fr, @controller.current_language
48 end
48 end
49
50 def test_browser_language_alternate
51 Setting.default_language = 'en'
52 @request.env['HTTP_ACCEPT_LANGUAGE'] = 'zh-TW'
53 get :index
54 assert_equal :"zh-tw", @controller.current_language
55 end
49 end
56 end
General Comments 0
You need to be logged in to leave comments. Login now