Hi, in my application, I regularly need to switch the active language for a short period of time. A popular example would be that a German-speaking user does something and I need to send out a notification to an English-speaking user.
Cluttering the code with translation.activate() statements is certainly
not making the core more readable, which is why I'm now using a context
manager:
with language(other_user.locale):
send_mail()
language() is currently implemented in my project like this:
@contextmanager
def language(lng):
_lng = translation.get_language()
translation.activate(lng or settings.LANGUAGE_CODE)
try:
yield
finally:
translation.activate(_lng)
This turned out to be very convenient and readable and I'd wanted to ask
for your opinion if
(a) something like this should be added to django
(b) the activate() method itself should be changed to optionally work as
a context manager
Cheers
Raphael
--
You received this message because you are subscribed to the Google Groups
"Django developers (Contributions to Django itself)" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-developers.
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-developers/20160920141111.62ef589e%40kvothe.
For more options, visit https://groups.google.com/d/optout.
pgpxloUreQIqG.pgp
Description: Digitale Signatur von OpenPGP
