DjangoCMS 以错误的语言显示菜单

DjangoCMS show menu on wrong language

我有网站 https://www.mobydisc.de/。它有 DE 和 EN 版本。当我从浏览器访问网站时,网站的所有内容都在 DE.

当我使用 https://www.google.com/webmasters/tools/googlebot-fetch-details 检查站点时,内容在 DE 上,但菜单在 EN 上。

我该如何解决?

设置:

LANGUAGE_CODE = 'de'
TIME_ZONE = 'Europe/Berlin'
USE_I18N = True
USE_L10N = True
USE_TZ = True
CMS_LANGUAGES = {
1: [
    {
        'code': 'de',
        'name': gettext('Deutsch'),
        'fallbacks': ['en'],
        'public': True,
    },
    {
        'code': 'en',
        'name': gettext('English'),
        'fallbacks': ['de'],
        'public': True,
        'hide_untranslated': True,
        'redirect_on_fallback':False,
    },
],
'default': {
    'fallbacks': ['de'],
    'redirect_on_fallback':True,
    'public': True,
    'hide_untranslated': False,
    }
}
LANGUAGES = [
    ('de', 'Deutsch'),
    ('en', 'English'),
]

过滤器:

@register.filter(name="get_menu_title_without_mega")
    def get_menu_title_without_mega(text):
        if megamenu(text):
            # print("mega remove")
            regexp  = re.compile("[ ]+mega[0-9]+$", re.MULTILINE)
            # print(text,regexp.sub("",text))
            return regexp.sub("",text)
        else:
            return text`

Image example

您是否在您的设置文件中用语言声明了 'de' 和 'en'。您只在 LANGUAGE_CODE 中显示 'de' 而没有在 LANGUAGES 中向我们显示任何内容,我怀疑这也可能只是在声明 'de'.

LANGUAGES = [
    ('de', _('German')),
    ('en', _('English')),
]

这对我有帮助https://www.djangosnippets.org/snippets/218/

我需要做的就是忽略 HTTP Accept-Language headers