python/django 会话和语言问题

发布于 2024-10-20 12:58:00 字数 464 浏览 1 评论 0原文

我有以下问题:在主页上我可以更改语言。新语言保存在 request.session['django_language'] 中。我还将 SESSION_COOKIE_DOMAIN 设置为我的站点,因此会话应该由子域继承。确实如此,因为在更改语言后,我检查了子域中的 request.session['django_language'] ,一切都很好。然后我使用

django.middleware.locale.LocaleMiddleware

来翻译我的页面。而且它运行完美......仅在主站点上!如果我更改语言并刷新主站点 - 就可以了。但是,如果我更改语言并转到子页面(例如 /LogIn),则该页面根本不会翻译。它保持默认语言。这真的很奇怪,因为如果我使用

{% load i18n %} 在这个子页面中{% get_current_language as lang %}

,那么lang就是好语言。没有错误。这可能是什么问题?一些建议?

I have the following problem: on the main page I can change language. New language is saved in request.session['django_language']. I also have SESSION_COOKIE_DOMAIN set to my site, so session should be inherited by subdomains. And it is, because after changing language I check request.session['django_language'] in subdomains and it's fine. Then I use

django.middleware.locale.LocaleMiddleware

to translate my pages. And it works perfectly... only on main site! If I change language and refresh main site - it is ok. However, if I change language and go to a subpage (for example /LogIn), then the page is NOT translated at all. It stays on default language. This is really strange, because if I use

{% load i18n %}
{% get_current_language as lang %}

in this subpage, then lang is good language. There is no mistake. What kind of problem can it be? Some suggestions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ペ泪落弦音 2024-10-27 12:58:00

看来使用 ugettext 是问题所在。我更改为 ugettext_lazy 现在它工作得很好。由于某种原因 ugettext 使用旧语言进行翻译。现在效果很好。

It seems that using ugettext was the problem. I changed to ugettext_lazy and now it works perfectly fine. For some reason ugettext translates with old language. It works fine now.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文