summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2012-07-21 13:49:07 +0200
committerClaude Paroz <claude@2xlibre.net>2012-07-21 13:49:07 +0200
commit32a4df6c55f2efd020b7fbc44c858f61b07da17d (patch)
tree6bea0b312b33194e8dee462f67fe6b2106ccf5ac
parent38c18f1747ef272f397e1080f04e52f27bd1bc33 (diff)
Fixed #18395 -- Reset language-related global variables with setting_changed
-rw-r--r--django/test/signals.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/django/test/signals.py b/django/test/signals.py
index 81808dfa3c..052b7dfa5c 100644
--- a/django/test/signals.py
+++ b/django/test/signals.py
@@ -11,6 +11,9 @@ template_rendered = Signal(providing_args=["template", "context"])
setting_changed = Signal(providing_args=["setting", "value"])
+# Most setting_changed receivers are supposed to be added below,
+# except for cases where the receiver is related to a contrib app.
+
@receiver(setting_changed)
def update_connections_time_zone(**kwargs):
@@ -46,3 +49,12 @@ def update_connections_time_zone(**kwargs):
def clear_context_processors_cache(**kwargs):
if kwargs['setting'] == 'TEMPLATE_CONTEXT_PROCESSORS':
context._standard_context_processors = None
+
+
+@receiver(setting_changed)
+def language_changed(**kwargs):
+ if kwargs['setting'] in ('LOCALE_PATHS', 'LANGUAGE_CODE'):
+ from django.utils.translation import trans_real
+ trans_real._default = None
+ if kwargs['setting'] == 'LOCALE_PATHS':
+ trans_real._translations = {}