当我设置一个多语言的DjangoCMS支持的网站时,默认语言代码将附加到URL:
http://mypage.com/ -> http://mypage.com/en
我不希望这是默认语言的情况(例如' en')而是我想要的是当内部没有语言标识符时选择的默认语言网址:
http://mypage.com -> Choose English
http://mypage.com/fr -> Choose French
http://mypage.com/it -> Choose Italian
如何做到这一点?
版本:
答案 0 :(得分:1)
我为正在生产中使用它的项目写了this,他们使用django-cms
2.4.3但我不明白为什么它不适用于3.0,你需要做的只是在你的一个应用程序中创建middleware.py
文件,比如说core
,然后将django的语言环境中间件替换为这个文件的路径,因为它是它的子类。
答案 1 :(得分:0)
基于Django CMS版本3.4.5和Django版本1.8.18的网站,我遇到了类似的情况。乍一看,这似乎是Django CMS关注的问题,但后来我意识到这与核心Django更为相关,后者已被本项目的最新版本本地解决。
我申请的直接解决方案涉及这些变化:
pip install Django==1.11.8 --upgrade
这样的shell命令可以实现这一点。urls.py
文件以进行更改,如下所示: urls.py
档案的原始内容:
urlpatterns += i18n_patterns(
url(r'^admin/', include(admin.site.urls)), # NOQA
url(r'^', include('cms.urls')),
)
urls.py
档案的新内容:
urlpatterns += i18n_patterns(
url(r'^admin/', include(admin.site.urls)), # NOQA
url(r'^', include('cms.urls')),
prefix_default_language=False
)
我应该提一下,在#django-cms IRC频道上有昵称FalseID
的人给了我建议找到这个解决方案,以及其他相关提示。