嗨,我在我的应用程序中使用多种语言,可以通过 url 访问它,比如www.asd.com/reg/?lang=es
有什么方法可以删除这个“?” 从我的网址开始,它变得像www.asd.com/reg/es
我的多语言功能正常工作。
谢谢
嗨,我在我的应用程序中使用多种语言,可以通过 url 访问它,比如www.asd.com/reg/?lang=es
有什么方法可以删除这个“?” 从我的网址开始,它变得像www.asd.com/reg/es
我的多语言功能正常工作。
谢谢
当您使用 访问 url 时?lang=es
,您将在视图中获得一个以lang
value命名的参数。es
这是通用的 HTTP url 方案。
使用 django,可以使用适当的 url 模式来完成类似的事情。例如:
url(r'^reg/(?P<lang>[\w]+)$', 'your_app.views.view_func',),
并且在视图中
def view_func(request, lang=None):
...
# lang will have value passed.
# do your stuff
因此,当您访问时www.asd.com/reg/es
,参数lang
将es
在您的视图中具有价值。
Django 1.4 原生支持此类 URL - i18n_patterns
. 据我了解,有一个名为的应用程序,django-i18nurls
但它已包含在 django 核心中
您也可以为此使用django-localeurl
应用程序(可在 BitBucket 获得)。它有一个中间件,可以修补request.path
和 django 的reverse
功能来实现区域设置 URL。也许这个应用程序有替代品
但是,此解决方案将为您提供格式的 URLwww.asd.com/es/reg/