我在登录期间在我的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 docs (read this link):
如果您想让每个用户指定他们喜欢的语言,那么您还需要使用LocaleMiddleware。 LocaleMiddleware可根据请求中的数据进行语言选择。它为每个用户定制内容。
一旦你确定你已经完全实现了get_current_language()
所需的一切,你就可以使用Translation docs。