gpt4 book ai didi

Django urlpatterns 用 ugettext 惰性翻译 - 如果 404 如何再次检查 url 是否与另一种语言匹配?

转载 作者:行者123 更新时间:2023-12-02 09:08:00 25 4
gpt4 key购买 nike

看了好久的stackoverflow,第一次在这里问。

该应用程序是双语的。我在 urlpatterns 中定义了要使用 ugettext_lazy 进行翻译的 url。用户选择第一种语言和网址工作,如果他将语言更改为第二种语言,它也可以很好地工作。

但是如果用户选择第一种语言并以第二种语言输入 url,他会得到 404,因为没有匹配,因为 urlpatterns 被翻译为第一种语言。

如何强制 Django 再次检查翻译为第二语言的 urlpatterns?我想显示一个页面(如果存在),就像在第一个语言中输入 url 一样。

我使用 LocaleMiddleware。

我考虑过设置cookie和重定向,但如果没有找到,在用户url中将显示翻译为第二个语言的url,而不是用户输入的内容,这可能会产生误导。

有什么想法吗?

问候,迈克

编辑:我不使用那些 i18n 模式。我有这样的东西:

url(_(r'^contact/'), include('contact.urls')),

并且希望 Django 无论选择何种语言都显示适当的 View 。如果用户输入/contact/或翻译为第二语言/kontakt/,则应显示 View 。

最佳答案

我不太喜欢翻译 URL 的想法,但尝试这样的事情:

en/django.po:

msgid "^contact/"
msgstr "^en/contact/"

msgid "^wrong_lang/(?P<url_part>.+)"
msgstr "^ru/(?P<url_part>.+)"

url.py:

url(_(r'^contact/'), include('contact.urls')), # matches "en/contact/" URL
url(_(r'^wrong_lang/(?P<url_part>.+)', redirect_to_current_lang), # matches "ru/..." URLs

views.py:

def redirect_to_current_lang(request, url_part):
return HttpResponseRedirect(_('^%s' % url_part))

关于Django urlpatterns 用 ugettext 惰性翻译 - 如果 404 如何再次检查 url 是否与另一种语言匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13088245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com