Django - 如何手动设置语言?

时间:2017-12-29 08:49:27

标签: django django-views

我在登录时使用:

在我的Django应用程序中设置语言
user_language = user.profile.language
translation.activate(user_language)
request.session['django_language'] = user_language
request.session[translation.LANGUAGE_SESSION_KEY] = user_language

应用程序不会像我希望的那样加载语言。 如果我在我的模板{% get_current_language %}中使用,我会在模板'en'或'pl'中看到。我按“刷新页面”和语言更改。同样奇怪的是,如果我为一个用户更改语言,它也会影响每个用户。

我的问题是如何手动设置语言,因此它保持不变,仅适用于特定用户。我想在登录后立即设置语言。

1 个答案:

答案 0 :(得分:1)

内置的Django中间件允许用户控制自己的语言设置。

来自Django docs (read this link)

  

如果您想让每个用户指定他们喜欢的语言,那么您还需要使用LocaleMiddleware。 LocaleMiddleware可根据请求中的数据进行语言选择。它为每个用户定制内容。

一旦您确定已完全实施get_current_language()所需的一切,就可以使用Translation docs