3

嗨,我在我的应用程序中使用多种语言,可以通过 url 访问它,比如www.asd.com/reg/?lang=es 有什么方法可以删除这个“?” 从我的网址开始,它变得像www.asd.com/reg/es 我的多语言功能正常工作。

谢谢

4

2 回答 2

2

当您使用 访问 url 时?lang=es,您将在视图中获得一个以langvalue命名的参数。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,参数langes在您的视图中具有价值。

于 2012-10-25T05:23:44.487 回答
2

Django 1.4 原生支持此类 URL - i18n_patterns. 据我了解,有一个名为的应用程序,django-i18nurls但它已包含在 django 核心中

您也可以为此使用django-localeurl应用程序(可在 BitBucket 获得)。它有一个中间件,可以修补request.path和 django 的reverse功能来实现区域设置 URL。也许这个应用程序有替代品

但是,此解决方案将为您提供格式的 URLwww.asd.com/es/reg/

于 2012-10-25T09:09:00.527 回答