Python 如何从Django URL更改语言?

Python 如何从Django URL更改语言?,python,django,localization,internationalization,Python,Django,Localization,Internationalization,我想在用户在url中引入区域设置时更改语言,类似这样 我该怎么做呢?我想到了很多方法。可以说,最“符合标准”的方法是使用HTTPAccept Language头,该头可作为request.META['HTTP\u Accept\u Language']查看,以确定用户更喜欢接收资源的语言,并简单地返回相应语言的翻译后的HttpResponse 另一种常见的方法,与您所描述的更为相似,是要求用户在第一次到达时选择一种语言,并将选择存储在会话中。一旦用户做出选择,将浏览器重定向到相应的语言子目录,并

我想在用户在url中引入区域设置时更改语言,类似这样


我该怎么做呢?

我想到了很多方法。可以说,最“符合标准”的方法是使用HTTP
Accept Language
头,该头可作为
request.META['HTTP\u Accept\u Language']
查看,以确定用户更喜欢接收资源的语言,并简单地返回相应语言的翻译后的
HttpResponse

另一种常见的方法,与您所描述的更为相似,是要求用户在第一次到达时选择一种语言,并将选择存储在会话中。一旦用户做出选择,将浏览器重定向到相应的语言子目录,并在视图中使用相对链接,这样就不必担心跨语言。您可以调整URLconf,将语言关键字传递给视图,如下所示:

urlpatterns = patterns('',
    (r'^(?P<lang>[a-zA-Z]{2})/ ...
urlpatterns=patterns(“”,
(r'^(?P[a-zA-Z]{2})/。。。
Django文档网站上有一个关于i18n的页面,可以帮助您入门。

签出


它提供了一个中间件,可以完全满足您的要求,因此您无需检查url中的语言。py

现在,最好的方法是在url模式中使用内置的语言前缀:

+1了解“?”)的相关用法,但我听说localeurl monkey修补程序是django函数的核心。这是我的一个大问题。该中间件目前未维护,django中有一个内置选项,url模式中有语言前缀,这确实很有帮助。此外,我从中获取了方法,并且我可以执行
{%url changing'en%%
在模板中