diff options
| author | Jannis Leidel <jannis@leidel.info> | 2011-05-06 13:29:32 +0000 |
|---|---|---|
| committer | Jannis Leidel <jannis@leidel.info> | 2011-05-06 13:29:32 +0000 |
| commit | 71ec87fed83c0fb23f131d11f30031eeaa79ed77 (patch) | |
| tree | c03b7ca9120d8f59fd1a788e940cca976b75f107 /django/utils | |
| parent | 0dc6420b3ebddd7bc2a0059b225d54ac19d4d901 (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/utils')
| -rw-r--r-- | django/utils/translation/__init__.py | 15 |
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() |
