0

我有以下关于使用 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 范围是一个线程?提前致谢!

4

1 回答 1

1

您可以查看翻译文档

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

from django.utils import translation
user_language = 'fr'
translation.activate(user_language)
request.session[translation.LANGUAGE_SESSION_KEY] = user_language
于 2014-10-21T13:19:40.370 回答