Django CMS页面树默认语言

oyt4ldly  于 2023-02-14  发布在  Go
关注(0)|答案(1)|浏览(115)

看起来我不知道如何设置Django CMS的默认语言。我想把默认语言设置为荷兰语。然而,不知什么原因,在创建或修改/编辑Page时,默认语言总是英语。
以下面的场景为例,我打开页面树,默认选择英语,我选择Dutch,我编辑这个页面,我发布它,我点击edit,它打开了一个空的English页面。
再看另一个场景,我打开页面树,创建一个新页面,默认情况下它是为英语变体打开的。
注意:所有Cookie均已按照文档中的建议删除。
请告诉我如何将默认语言设置为荷兰语?
设置:

from django.utils.translation import gettext_lazy as _

LANGUAGE_CODE = "nl"
SITE_ID = 1
USE_I18N = True

MIDDLEWARE = [
    "django.middleware.security.SecurityMiddleware",
    "corsheaders.middleware.CorsMiddleware",
    "django.contrib.sessions.middleware.SessionMiddleware",
    "django.middleware.locale.LocaleMiddleware",
    "django.middleware.common.CommonMiddleware",
    "django.middleware.csrf.CsrfViewMiddleware",
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django.contrib.messages.middleware.MessageMiddleware",
    "django.middleware.common.BrokenLinkEmailsMiddleware",
    "django.middleware.clickjacking.XFrameOptionsMiddleware",
    'cms.middleware.user.CurrentUserMiddleware',
    'cms.middleware.page.CurrentPageMiddleware',
    'cms.middleware.toolbar.ToolbarMiddleware',
    'cms.middleware.language.LanguageCookieMiddleware',
]

LANGUAGES = [
    ('nl', 'Dutch'),
    ('en', 'English'),
]

CMS_LANGUAGES = {
    1: [
        {
            'code': 'nl',
            'name': _('Dutch'),
            'fallbacks': ['en', ],
            'public': True,
            'hide_untranslated': True,
            'redirect_on_fallback': False,
        },
        {
            'code': 'en',
            'name': _('English'),
            'public': True,
        },
    ],
    'default': {
        'fallbacks': ['nl', 'en'],
        'redirect_on_fallback': False,
        'public': True,
        'hide_untranslated': True,
    }
}
xwbd5t1u

xwbd5t1u1#

我根据文档修复了以下问题:

# urls.py

from django.conf.urls.i18n import i18n_patterns
from django.views.i18n import JavaScriptCatalog

# ...

admin.autodiscover()

urlpatterns = i18n_patterns(
    re_path(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog'),
)

# Note the django CMS URLs included via i18n_patterns
urlpatterns += i18n_patterns(
    path(settings.ADMIN_URL, admin.site.urls),
    re_path(r'^', include('cms.urls')),
)
urlpatterns += [
    ...
]

这个设置引入了其他需要修复的小问题。但总的来说,这就是解决方案。
另一方面,不确定为什么需要此部分:

re_path(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog')

相关问题