我按照tutorial,使一個新的Django-CMS(2.4)站點。我只使用單一語言(英語)。如何從django-cms 2.4網址中刪除語言標識符?
有一個自動重定向到包含在我的網站的網址,語言標識「/ EN /」。我如何刪除它?
謝謝。
我按照tutorial,使一個新的Django-CMS(2.4)站點。我只使用單一語言(英語)。如何從django-cms 2.4網址中刪除語言標識符?
有一個自動重定向到包含在我的網站的網址,語言標識「/ EN /」。我如何刪除它?
謝謝。
取代這個圖案註冊:
urlpatterns = i18n_patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('cms.urls')),
)
與此:
from django.conf.urls import patterns
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('cms.urls')),
)
你指着教程使用i18n_patterns
方法,它正是這樣做的:預先將語言代碼添加到您的網址。
另外請注意,你可以安全地從你的MIDDLEWARE_CLASSES刪除「django.middleware.locale.LocaleMiddleware」和「cms.middleware.language.LanguageCookieMiddleware」如果你不會使用多種語言。
如果你想保持一種語言的網址,例如:因爲你在語言代碼的網站的反向鏈接,你可以簡單地採取了其他語言settings.py
LANGUAGES = (
#('en', gettext('en')),
('de', gettext('de')),
)
CMS_LANGUAGES = {
'default': {
'public': True,
'hide_untranslated': False,
'redirect_on_fallback': True,
},
1: [
{
'public': True,
'code': 'de',
'hide_untranslated': False,
'name': gettext('de'),
'redirect_on_fallback': True,
},
# {
# 'public': True,
# 'code': 'en',
# 'hide_untranslated': False,
# 'name': gettext('en'),
# 'fallbacks': ['de'],
# 'redirect_on_fallback': True,
# },
],
}
這樣該網址仍顯示www.example.com/de/foo.html
。在上面的例子中,/de/
會丟失,這將使得在網絡無意義的所有URL。
因此,從SEO的角度來看,它可能不是最好的選擇,如果你已經建立了與它的語言代碼的鏈接。
@ ppetrid的回答仍然是正確的。不過,截至Django 1.6 patterns
已不再可用。現有的代碼改成這樣:
from django.conf.urls import patterns
urlpatterns = (
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('cms.urls')),
)
你也將得到一個警告,如果你的模式離開'',
了。
在Django版本1.8.18,你只需要把False
在這個變量中settings.py
USE_I18N = False
USE_L10N = False
那麼容易!謝謝! –
這應該是在settings.py :) –
只是一個註釋配置。這也適用於Django CMS v3.0。 – azuax