Django翻译i18n线程

时间:2014-10-21 12:53:18

标签: django django-i18n

关于使用i18n的翻译,我有以下问题。 我的申请有愚蠢的结构:

apps\
  app1\
  app2\
  ...
  app_n\
manage.py 
settings.py 

两个语言:lang1(默认)和lang2。 在app2中,我有以下激活语言的代码:

from django.utils.translation import activate, get_language
...
activate(lang2)

然后,在我调用

时来自app1的代码
get_language()

我得到默认语言(lang1) 我做错了什么? 可能是因为i18n范围是一个线程? 提前谢谢!

1 个答案:

答案 0 :(得分:1)

您可以查看documentation for translation

activate()仅适用于当前视图。要为整个会话保留它,您需要设置会话变量(如果您没有使用会话,则设置cookie)

from django.utils import translation
user_language = 'fr'
translation.activate(user_language)
request.session[translation.LANGUAGE_SESSION_KEY] = user_language
相关问题