diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/application_controller.rb | 2 | ||||
-rw-r--r-- | app/helpers/settings_helper.rb | 2 | ||||
-rw-r--r-- | app/models/user.rb | 12 | ||||
-rw-r--r-- | app/views/account/register.html.erb | 3 | ||||
-rw-r--r-- | app/views/my/account.html.erb | 2 | ||||
-rw-r--r-- | app/views/settings/_display.html.erb | 4 | ||||
-rw-r--r-- | app/views/users/_form.html.erb | 2 |
7 files changed, 25 insertions, 2 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 228be479e..152dc3f18 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -201,7 +201,7 @@ class ApplicationController < ActionController::Base if User.current.logged? lang = find_language(User.current.language) end - if lang.nil? && request.env['HTTP_ACCEPT_LANGUAGE'] + if lang.nil? && !Setting.force_default_language_for_anonymous? && request.env['HTTP_ACCEPT_LANGUAGE'] accept_lang = parse_qvalues(request.env['HTTP_ACCEPT_LANGUAGE']).first if !accept_lang.blank? accept_lang = accept_lang.downcase diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index a01e29a3a..8dcc1ecb6 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -79,7 +79,7 @@ module SettingsHelper def setting_label(setting, options={}) label = options.delete(:label) - label != false ? label_tag("settings_#{setting}", l(label || "setting_#{setting}")).html_safe : '' + label != false ? label_tag("settings_#{setting}", l(label || "setting_#{setting}"), options[:label_options]).html_safe : '' end # Renders a notification field for a Redmine::Notifiable option diff --git a/app/models/user.rb b/app/models/user.rb index d04369277..7aac01235 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -314,6 +314,18 @@ class User < Principal @time_zone ||= (self.pref.time_zone.blank? ? nil : ActiveSupport::TimeZone[self.pref.time_zone]) end + def force_default_language? + Setting.force_default_language_for_loggedin? + end + + def language + if force_default_language? + Setting.default_language + else + super + end + end + def wants_comments_in_reverse_order? self.pref[:comments_sorting] == 'desc' end diff --git a/app/views/account/register.html.erb b/app/views/account/register.html.erb index e8e8098fe..f655514a3 100644 --- a/app/views/account/register.html.erb +++ b/app/views/account/register.html.erb @@ -16,7 +16,10 @@ <p><%= f.text_field :firstname, :required => true %></p> <p><%= f.text_field :lastname, :required => true %></p> <p><%= f.text_field :mail, :required => true %></p> + +<% unless @user.force_default_language? %> <p><%= f.select :language, lang_options_for_select %></p> +<% end %> <% if Setting.openid? %> <p><%= f.text_field :identity_url %></p> diff --git a/app/views/my/account.html.erb b/app/views/my/account.html.erb index 8ec3a8dc9..0ce223b0a 100644 --- a/app/views/my/account.html.erb +++ b/app/views/my/account.html.erb @@ -16,7 +16,9 @@ <p><%= f.text_field :firstname, :required => true %></p> <p><%= f.text_field :lastname, :required => true %></p> <p><%= f.text_field :mail, :required => true %></p> + <% unless @user.force_default_language? %> <p><%= f.select :language, lang_options_for_select %></p> + <% end %> <% if Setting.openid? %> <p><%= f.text_field :identity_url %></p> <% end %> diff --git a/app/views/settings/_display.html.erb b/app/views/settings/_display.html.erb index 1ae5a351a..ab1ce9b9b 100644 --- a/app/views/settings/_display.html.erb +++ b/app/views/settings/_display.html.erb @@ -5,6 +5,10 @@ <p><%= setting_select :default_language, lang_options_for_select(false) %></p> +<p><%= setting_check_box :force_default_language_for_anonymous %></p> + +<p><%= setting_check_box :force_default_language_for_loggedin %></p> + <p><%= setting_select :start_of_week, [[day_name(1),'1'], [day_name(6),'6'], [day_name(7),'7']], :blank => :label_language_based %></p> <% locale = User.current.language.blank? ? ::I18n.locale : User.current.language %> <p><%= setting_select :date_format, Setting::DATE_FORMATS.collect {|f| [::I18n.l(Date.today, :locale => locale, :format => f), f]}, :blank => :label_language_based %></p> diff --git a/app/views/users/_form.html.erb b/app/views/users/_form.html.erb index e90095827..413e3550b 100644 --- a/app/views/users/_form.html.erb +++ b/app/views/users/_form.html.erb @@ -9,7 +9,9 @@ <p><%= f.text_field :firstname, :required => true %></p> <p><%= f.text_field :lastname, :required => true %></p> <p><%= f.text_field :mail, :required => true %></p> + <% unless @user.force_default_language? %> <p><%= f.select :language, lang_options_for_select %></p> + <% end %> <% if Setting.openid? %> <p><%= f.text_field :identity_url %></p> <% end %> |