mirror of
https://github.com/discourse/discourse.git
synced 2025-02-12 14:24:54 +00:00
Add a site setting to allow users to toggle I18n.locale
It is false by default.
This commit is contained in:
parent
c513725f26
commit
0592420e52
@ -11,6 +11,10 @@ Discourse.PreferencesController = Discourse.ObjectController.extend({
|
|||||||
return Discourse.SiteSettings.allow_uploaded_avatars;
|
return Discourse.SiteSettings.allow_uploaded_avatars;
|
||||||
}.property(),
|
}.property(),
|
||||||
|
|
||||||
|
allowUserLocale: function() {
|
||||||
|
return Discourse.SiteSettings.allow_user_locale;
|
||||||
|
}.property(),
|
||||||
|
|
||||||
// By default we haven't saved anything
|
// By default we haven't saved anything
|
||||||
saved: false,
|
saved: false,
|
||||||
|
|
||||||
|
@ -66,6 +66,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{#if allowUserLocale}}
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label">{{i18n user.locale.title}}</label>
|
<label class="control-label">{{i18n user.locale.title}}</label>
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
@ -75,6 +76,7 @@
|
|||||||
{{i18n user.locale.instructions}}
|
{{i18n user.locale.instructions}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label class="control-label">{{i18n user.bio}}</label>
|
<label class="control-label">{{i18n user.bio}}</label>
|
||||||
|
@ -109,7 +109,7 @@ class ApplicationController < ActionController::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def set_locale
|
def set_locale
|
||||||
I18n.locale = if current_user && current_user.locale.present?
|
I18n.locale = if SiteSetting.allow_user_locale && current_user && current_user.locale.present?
|
||||||
current_user.locale
|
current_user.locale
|
||||||
else
|
else
|
||||||
SiteSetting.default_locale
|
SiteSetting.default_locale
|
||||||
|
@ -549,6 +549,7 @@ en:
|
|||||||
|
|
||||||
site_settings:
|
site_settings:
|
||||||
default_locale: "The default language of this Discourse instance (ISO 639-1 Code)"
|
default_locale: "The default language of this Discourse instance (ISO 639-1 Code)"
|
||||||
|
allow_user_locale: "Allow users to choose their own language interface preference"
|
||||||
min_post_length: "Minimum post length in characters"
|
min_post_length: "Minimum post length in characters"
|
||||||
min_private_message_post_length: "Minimum post length in characters for private messages"
|
min_private_message_post_length: "Minimum post length in characters for private messages"
|
||||||
max_post_length: "Maximum post length in characters"
|
max_post_length: "Maximum post length in characters"
|
||||||
|
@ -484,6 +484,7 @@ fr:
|
|||||||
description: "HTML qui sera ajouté au pied de toutes les pages"
|
description: "HTML qui sera ajouté au pied de toutes les pages"
|
||||||
site_settings:
|
site_settings:
|
||||||
default_locale: "Le langage par défaut de cette instance de Discourse (code ISO 639-1)"
|
default_locale: "Le langage par défaut de cette instance de Discourse (code ISO 639-1)"
|
||||||
|
allow_user_locale: "Permettre aux utilisateurs de choisir leur propre préférence de langue pour l'interface"
|
||||||
min_post_length: "Longueur minimale des messages en nombre de caractères"
|
min_post_length: "Longueur minimale des messages en nombre de caractères"
|
||||||
min_private_message_post_length: "Longueur minimale des messages privés en nombre de caractères"
|
min_private_message_post_length: "Longueur minimale des messages privés en nombre de caractères"
|
||||||
max_post_length: "Longueur maximale des messages en nombres de caractères"
|
max_post_length: "Longueur maximale des messages en nombres de caractères"
|
||||||
|
@ -24,6 +24,9 @@ basic:
|
|||||||
default_locale:
|
default_locale:
|
||||||
default: 'en'
|
default: 'en'
|
||||||
enum: 'LocaleSiteSetting'
|
enum: 'LocaleSiteSetting'
|
||||||
|
allow_user_locale:
|
||||||
|
client: true
|
||||||
|
default: false
|
||||||
ga_tracking_code:
|
ga_tracking_code:
|
||||||
client: true
|
client: true
|
||||||
default: ''
|
default: ''
|
||||||
|
@ -55,6 +55,15 @@ describe TopicsController do
|
|||||||
|
|
||||||
I18n.locale.should == :fr
|
I18n.locale.should == :fr
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'is sets the default locale when the setting not enabled' do
|
||||||
|
user = Fabricate(:user, locale: :fr)
|
||||||
|
log_in_user(user)
|
||||||
|
|
||||||
|
get :show, {topic_id: topic.id}
|
||||||
|
|
||||||
|
I18n.locale.should == :en
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user