@@ -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? |
|
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. |
|
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