0

我有一個多語言網站(it,en,ru),它使用django-cms連接到各種頁面上的應用程序。我的問題是,即使我以'/ en /'或'/ ru /'作爲前綴訪問頁面,內容始終以意大利語提供。 在我的基本模板(base.html)上,我有一個{{lang}}模板變量,它允許我檢索當前頁面語言,並且它工作正常......直到今天。現在,如果我訪問wwww.myhomepage/en(或/ru),'lang'的值總是'it'。django-cms:錯誤的當前頁面語言

這些是我的語言設置(CMS,而不是CMS),並與語言相關的其他設置:

LANGUAGE_CODE = 'it' 

DEFAULT_LANGUAGE = 0 

LANGUAGES = (
    ('it', gettext(u'Italiano')), 
    ('en', gettext(u'English')), 
    ('ru', gettext(u'Russian')), )                                         

CMS_LANGUAGES = (
    ('it', ugettext('Italian')), 
    ('en', ugettext('English')), 
    ('ru', ugettext('Russian')), 
) 

LOCALE_PATHS = (os.path.join(PROJECT_PATH, 'locale')) 

CMS_LANGUAGE_CONF = { 
    'it': ['en'], 
    'ru': ['en'], 
    } 

CMS_HIDE_UNTRANSLATED = False 

    MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'cms.middleware.multilingual.MultilingualURLMiddleware', 
    'cms.middleware.page.CurrentPageMiddleware', 
    'cms.middleware.user.CurrentUserMiddleware', 
    'cms.middleware.toolbar.ToolbarMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'cms.middleware.multilingual.MultilingualURLMiddleware', 
    'cms.middleware.page.CurrentPageMiddleware', 
    'cms.middleware.user.CurrentUserMiddleware', 
    'debug_toolbar.middleware.DebugToolbarMiddleware', 
    'cms.middleware.multilingual.MultilingualURLMiddleware', 
    'cms.middleware.page.CurrentPageMiddleware', 
    'cms.middleware.user.CurrentUserMiddleware', 
    'cms.middleware.toolbar.ToolbarMiddleware' 
) 

任何幫助嗎? Thanx

回答

0

您有幾個在您的設置中重複的中間件。他們應該是這個樣子:

MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware', 
'django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 

'cms.middleware.multilingual.MultilingualURLMiddleware', 
'cms.middleware.page.CurrentPageMiddleware', 
'cms.middleware.user.CurrentUserMiddleware', 
'cms.middleware.toolbar.ToolbarMiddleware', 
) 

另外,你可以給你CONTEXT_PROCESSOR設置呢?

然後,我假設你使用的是Django-cms < = 2.3.5。這是正確的嗎?有一個2.4測試版正在擺脫MultilingualMiddleware,如果你可以嘗試,如果它適合你(即使它仍然是一個測試版)。