summaryrefslogtreecommitdiff
path: root/django/utils
diff options
context:
space:
mode:
Diffstat (limited to 'django/utils')
-rw-r--r--django/utils/translation/trans_real.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/django/utils/translation/trans_real.py b/django/utils/translation/trans_real.py
index 0f08056778..bf75ef17e2 100644
--- a/django/utils/translation/trans_real.py
+++ b/django/utils/translation/trans_real.py
@@ -11,6 +11,8 @@ from importlib import import_module
from threading import local
import warnings
+from django.dispatch import receiver
+from django.test.signals import setting_changed
from django.utils.encoding import force_str, force_text
from django.utils.functional import memoize
from django.utils._os import upath
@@ -47,6 +49,17 @@ accept_language_re = re.compile(r'''
language_code_prefix_re = re.compile(r'^/([\w-]+)(/|$)')
+@receiver(setting_changed)
+def reset_cache(**kwargs):
+ """
+ Reset global state when LANGUAGES setting has been changed, as some
+ languages should no longer be accepted.
+ """
+ if kwargs['setting'] == 'LANGUAGES':
+ global _accepted
+ _accepted = {}
+
+
def to_locale(language, to_lower=False):
"""
Turns a language name (en-us) into a locale name (en_US). If 'to_lower' is