使用 Django 的新 i18n_patterns:如何回退到设置模块中指定的默认语言?
Posted
技术标签:
【中文标题】使用 Django 的新 i18n_patterns:如何回退到设置模块中指定的默认语言?【英文标题】:Using Django's new i18n_patterns: How to fall back to the default language specified in the settings module? 【发布时间】:2012-06-14 21:01:46 【问题描述】:我正在使用 Django 1.4 的新 i18n_patterns
:
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)),
)
它适用于每一种活跃的语言:
/en/admin/ # Ok
/es/admin/ # Ok
但这失败了:
/admin/ # 404 Not found
如何避免 404 错误并重定向到所请求 URL 的语言前缀版本(不仅是管理面板)?
是写一个自定义的中间件解决方案吗?为什么这在 Django 中没有默认出现?
【问题讨论】:
【参考方案1】:您好像没有enable django.middleware.locale.LocaleMiddleware。
【讨论】:
糟糕...我的错!我想文档需要进一步澄清这一点。然而,在阅读了整个翻译部分之后,很明显django.middleware.locale.LocaleMiddleware
是翻译所有内容的必要条件。谢谢!
答案仍然适用于 Django 1.9。以上是关于使用 Django 的新 i18n_patterns:如何回退到设置模块中指定的默认语言?的主要内容,如果未能解决你的问题,请参考以下文章
Django App TypeError django.views.i18n.javascript_catalog