Index: app/controllers/application.rb =================================================================== --- app/controllers/application.rb (revision 2383) +++ app/controllers/application.rb (working copy) @@ -65,19 +65,23 @@ def set_localization User.current.language = nil unless User.current.logged? - lang = begin - if !User.current.language.blank? && GLoc.valid_language?(User.current.language) - User.current.language - elsif request.env['HTTP_ACCEPT_LANGUAGE'] - accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.downcase - if !accept_lang.blank? && (GLoc.valid_language?(accept_lang) || GLoc.valid_language?(accept_lang = accept_lang.split('-').first)) - User.current.language = accept_lang - end - end - rescue - nil - end || Setting.default_language - set_language_if_valid(lang) + if !Setting.static_language? + lang = begin + if !User.current.language.blank? && GLoc.valid_language?(User.current.language) + User.current.language + elsif request.env['HTTP_ACCEPT_LANGUAGE'] + accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first.downcase + if !accept_lang.blank? && (GLoc.valid_language?(accept_lang) || GLoc.valid_language?(accept_lang = accept_lang.split('-').first)) + User.current.language = accept_lang + end + end + rescue + nil + end || Setting.default_language + set_language_if_valid(lang) + else + lang = Setting.default_language + end end def require_login Index: app/views/settings/_display.rhtml =================================================================== --- app/views/settings/_display.rhtml (revision 2383) +++ app/views/settings/_display.rhtml (working copy) @@ -7,6 +7,9 @@

<%= select_tag 'settings[default_language]', options_for_select( lang_options_for_select(false), Setting.default_language) %>

+

+<%= check_box_tag 'settings[static_language]', 1, Setting.static_language? %><%= hidden_field_tag 'settings[static_language]', 0 %>

+

<%= select_tag 'settings[date_format]', options_for_select( [[l(:label_language_based), '']] + Setting::DATE_FORMATS.collect {|f| [Date.today.strftime(f), f]}, Setting.date_format) %>

Index: config/settings.yml =================================================================== --- config/settings.yml (revision 2383) +++ config/settings.yml (working copy) @@ -143,3 +143,5 @@ To change your notification preferences, please click here: http://hostname/my/account gravatar_enabled: default: 0 +static_language: + default: 0 Index: lang/en.yml =================================================================== --- lang/en.yml (revision 2383) +++ lang/en.yml (working copy) @@ -228,6 +228,7 @@ setting_gravatar_enabled: Use Gravatar user icons setting_diff_max_lines_displayed: Max number of diff lines displayed setting_repository_log_display_limit: Maximum number of revisions displayed on file log +setting_static_language: Disable automated language-guessing based on HTTP_ACCEPT_LANGUAGE HTTP-header permission_edit_project: Edit project permission_select_project_modules: Select project modules