关于使用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范围是一个线程? 提前谢谢!
答案 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