diff options
| author | Claude Paroz <claude@2xlibre.net> | 2012-07-21 13:49:07 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2012-07-21 13:49:07 +0200 |
| commit | 32a4df6c55f2efd020b7fbc44c858f61b07da17d (patch) | |
| tree | 6bea0b312b33194e8dee462f67fe6b2106ccf5ac | |
| parent | 38c18f1747ef272f397e1080f04e52f27bd1bc33 (diff) | |
Fixed #18395 -- Reset language-related global variables with setting_changed
| -rw-r--r-- | django/test/signals.py | 12 |
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 = {} |
