Django CMS (3.6.0) автоматическое переключение / обнаружение языка работает не так, как задумано - PullRequest
0 голосов
/ 10 мая 2019

Ожидаемое поведение будет означать, что вновь посещающий человек с FR в качестве первого параметра в заголовке HTTP должен видеть французскую версию страницы (которая существует и установлена ​​в качестве языка в настройках, но не по умолчанию).ручной переключатель языка работает).

В соответствии с django docs язык должен быть определен в следующем порядке

https://docs.djangoproject.com/en/dev/topics/i18n/translation/#how-django-discovers-language-preference

  1. языкпрефикс в запрашиваемом URL
  2. cookie
  3. HTTP-заголовок Accept-Language
  4. Настройки по умолчанию

Фактическое поведение Правильно переключаетсяНавигационные узлы (меню django cms) на французском языке, но не содержимое плагина cms (отображается на языке по умолчанию).

#MIDDLEWARE SETTINGS (order as mentioned in docs)

'cms.middleware.utils.ApphookReloadMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'webpack.middleware.WebpackDevserverMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.contrib.admindocs.middleware.XViewMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'cms.middleware.page.CurrentPageMiddleware',
'cms.middleware.user.CurrentUserMiddleware',
'cms.middleware.toolbar.ToolbarMiddleware',
'cms.middleware.language.LanguageCookieMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',

##################################################################
# multisite language handling
##################################################################
AVAILABLE_LANGUAGES = {
    'de': _('Deutsch'),
    'fr': _('Französisch'),
    'it': _('Italiano'),
    'en': _('English'),
}
SITE_LANGUAGES = config('SITE_LANGUAGES', default='de,fr', cast=Csv())
LANGUAGE_CODE = SITE_LANGUAGES[0]
LANGUAGES = [(k, v) for k, v in AVAILABLE_LANGUAGES.items() if k in SITE_LANGUAGES]

Требуется ли CMS_LANGUAGES, если задано SITE_LANGUAGES.В Django CMS доступны все соответствующие параметры в дереве страниц.Я не мог видеть другое поведение, если установлено.

Есть идеи, что может вызвать такое поведение?

...