[1.8.x] Added translation.override() context manager to docs.

Backport of cf34ee68f0 from master
This commit is contained in:
Dmitry Medvinsky 2015-04-29 20:43:54 +03:00 committed by Tim Graham
parent afae8ff916
commit 49dea4164a
1 changed files with 11 additions and 0 deletions

View File

@ -1739,6 +1739,7 @@ will affect code running in the same thread.
For example:: For example::
from django.utils import translation from django.utils import translation
def welcome_translated(language): def welcome_translated(language):
cur_language = translation.get_language() cur_language = translation.get_language()
try: try:
@ -1757,6 +1758,16 @@ which returns the language used in the current thread,
for the current thread, and ``django.utils.translation.check_for_language()`` for the current thread, and ``django.utils.translation.check_for_language()``
which checks if the given language is supported by Django. which checks if the given language is supported by Django.
To help write more concise code, there is also a context manager
``django.utils.translation.override()`` that stores the current language on
enter and restores it on exit. With it, the above example becomes::
from django.utils import tranlations
def welcome_translated(language):
with translation.override(language):
return translation.ugettext('welcome')
Language cookie Language cookie
--------------- ---------------