summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorJannis Leidel <jannis@leidel.info>2011-05-06 13:29:32 +0000
committerJannis Leidel <jannis@leidel.info>2011-05-06 13:29:32 +0000
commit71ec87fed83c0fb23f131d11f30031eeaa79ed77 (patch)
treec03b7ca9120d8f59fd1a788e940cca976b75f107 /django
parent0dc6420b3ebddd7bc2a0059b225d54ac19d4d901 (diff)
Added django.utils.translation.override context manager to easily activate and deactivate a language for a code block.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16166 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django')
-rw-r--r--django/utils/translation/__init__.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/django/utils/translation/__init__.py b/django/utils/translation/__init__.py
index 9433ad897f..e8601efc2f 100644
--- a/django/utils/translation/__init__.py
+++ b/django/utils/translation/__init__.py
@@ -102,6 +102,21 @@ def activate(language):
def deactivate():
return _trans.deactivate()
+class override(object):
+ def __init__(self, language, deactivate=False):
+ self.language = language
+ self.deactivate = deactivate
+ self.old_language = get_language()
+
+ def __enter__(self):
+ activate(self.language)
+
+ def __exit__(self, exc_type, exc_value, traceback):
+ if self.deactivate:
+ deactivate()
+ else:
+ activate(self.old_language)
+
def get_language():
return _trans.get_language()