Django - 如何手动设置语言?

问题描述 投票:1回答:1

我在登录期间在我的Django应用程序中设置语言:

user_language = user.profile.language
translation.activate(user_language)
request.session['django_language'] = user_language
request.session[translation.LANGUAGE_SESSION_KEY] = user_language

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

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

django django-views
1个回答
1
投票

有内置的Django中间件,让用户可以控制自己的语言设置。

来自Django docs (read this link)

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

一旦你确定你已经完全实现了get_current_language()所需的一切,你就可以使用Translation docs

© www.soinside.com 2019 - 2024. All rights reserved.