I'm using the new i18n_patterns
of Django 1.4:
from django.conf.urls import patterns, include, url
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
admin.autodiscover()
urlpatterns += i18n_patterns('',
url(r'^admin/', include(admin.site.urls)),
)
It works for every active language:
/en/admin/ # Ok
/es/admin/ # Ok
But this fails:
/admin/ # 404 Not found
How to avoid the 404 error and redirect to a language-prefixed version of the requested URL (not only the admin panel)?
Is to write a custom middleware the solution? Why this doesn't come by default in Django?
It looks like you did not enable django.middleware.locale.LocaleMiddleware.