Ok this is all very clear now, and the docs are quite helpful too 
(https://docs.djangoproject.com/en/dev/topics/i18n/translation/#using-translations-outside-views-and-templates).
But now I wonder what is the best way to implement that?
I mean in my case I use Django to automatically discover the user's 
preferred language according to the browser preferences and if it fails 
there is also a button to choose the language. I can link that button to a 
field in the user profile model to remember what language they set for 
later use with translation.activate. But in case Django displays the right 
language for the user automatically that field will remain empty and that 
would be pretty counter intuitive for the user to set their preferred 
language with a button when it is already displayed correctly. What would 
be the right thing to do in that case? Is there a way to retrieve the 
latest language used in the user session? Or something similar? Thanks!


On Friday, October 5, 2012 12:19:38 PM UTC+2, Tom Evans wrote:
>
> On Fri, Oct 5, 2012 at 10:12 AM, Bastian <bastien....@gmail.com<javascript:>> 
> wrote: 
> > Hi, 
> > 
> > I understand quite well how translations and i18n work inside a browser 
> for 
> > Django but I'm not sure about the correct way to do it outside a 
> browser. I 
> > mean when sending a mail or a tweet. What should I use to get the 
> language 
> > of the user that is going to receive the mail or in case of a tweet the 
> > language of the user that I will send it on behalf of. And then how do I 
> ask 
> > Django to translate that? 
> > I could not find it in the docs, if it exists please point me to it. 
> > 
> > Cheers 
> > 
>
> You will need to have a mechanism for storing what the user's chosen 
> language is. Once you have that, simply do this: 
>
> from django.utils import translation 
>
> cur_language = translation.get_language() 
> translation.activate(get_lang_for_user(user)) 
> # send email, tweet, etc 
> translation.activate(cur_language) 
>
> You would need to define the 'get_lang_for_user' function. 
>
> Cheers 
>
> Tom 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-users/-/0MvHhF60bBIJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to