1

我正在尝试按照此处所述应用 django URL 语言环境

https://docs.djangoproject.com/en/dev/topics/i18n/translation/#translating-url-patterns

下面是我的设置文件

LANGUAGE_CODE = 'en'

gettext = lambda s: s

LANGUAGES = (
    ('ar', gettext('Arabic')),
    ('en', gettext('English')),
)

我的 urls.py 如下

from django.conf.urls import patterns, include, url
from django.conf import settings
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf.urls.i18n import i18n_patterns



admin.autodiscover()


urlpatterns = patterns('',
    url(r'^sitemap\.xml$', 'sitemap.view', name='sitemap_xml'),
)

urlpatterns += i18n_patterns('',

    url(r'^', include('bon_app.apps.bonz.urls')),

    url(r'^', include('bon_app.apps.pages.urls')),

)

它目前仅适用于英语,当我尝试 127.0.0.1/en/ 时它可以工作,但是当我尝试 127.0.0.1//ar/ 时,它不知道为什么会这样?

我目前使用 django 1.4

更新

bon_app/apps/bonz/urls.py

from django.conf.urls import patterns, include, url


urlpatterns = patterns('bon_app.apps.bonz.views',

    url(r'^$',              'home',                               name='bonz-home'),
    url(r'^promotion/$',    'home',  {'model'   : 'Promotion'},   name='bonz-promo'),
    url(r'^event/$',        'home',  {'model'   : 'Event'},       name='bonz-event'),
    url(r'^directory/$',    'directory',                          name='bonz-directory')
)

bon_app/apps/pages/urls.py

from django.conf.urls import patterns, include, url


urlpatterns = patterns('bon_app.apps.pages.views',

    url(r'^contact-us/$', 'contact_us', name='pages-contactus'),
    url(r'^about-us/$', 'about_us', name='pages-aboutus'),

)
4

2 回答 2

1

你说:

它目前仅适用于英语,当我尝试 127.0.0.1/en/ 时它可以工作,但是当我尝试 127.0.0.1//ar/ 时,它不知道为什么会这样?

在“ar”之前有一个双斜杠“//”而不是一个斜杠“/”。

也许这已经是问题所在了?

于 2012-09-17T23:12:55.997 回答
0

您必须将 LocaleMiddleware 添加到您的 MIDDLEWARE_CLASSES

于 2013-08-12T11:42:30.873 回答