I have set up Wagtail (latest) for multi-language. Works fine with Portuguese (pt), but I'm trying to work for Krio, which has a 3 character language code: kri.
I have had to add Krio manally to LANG_INFO etc, and this works fine in the Wagtail UI, allowing me to set up alternate homepages for pt and kri, but when it comes to do the language redirecting, it fails to redirect to the kri translation.
Is it possible I have missed a setting? Can the redirection logic handle 3 letter codes?
My language settings:
WAGTAIL_I18N_ENABLED = True
USE_L10N = True
LANGUAGES = [
('en-GB', "English (Great Britain)"),
('en-US', "English (United States)"),
('en-CA', "English (Canada)"),
('pt', "Portuguese"),
('kri', "Krio (Sierra Leone Creole)"),
]
WAGTAIL_CONTENT_LANGUAGES = [
('en-GB', "English (British)"),
('kri', "Krio (Sierra Leone Creole)"),
('pt', "Portuguese"),
]
EXTRA_LANG_INFO = {
"kri" : {
'bidi': False,
'code': 'kri',
'name': 'Sierra Leonean Creole (Krio)',
'name_local': 'Krio',
},
}
LANG_INFO = dict(django.conf.locale.LANG_INFO, **EXTRA_LANG_INFO)
django.conf.locale.LANG_INFO = LANG_INFO
My middleware:
MIDDLEWARE = [
"django.middleware.security.SecurityMiddleware",
"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.clickjacking.XFrameOptionsMiddleware",
"allauth.account.middleware.AccountMiddleware",
"wagtail.contrib.redirects.middleware.RedirectMiddleware",
]
My urls patterns:
urlpatterns = [
# path('django-admin/', admin.site.urls),
path('cms/', include(wagtailadmin_urls)),
path('documents/', include(wagtaildocs_urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# Translatable URLs
# These will be available under a language code prefix. For example /en/search/
urlpatterns += i18n_patterns(
path("", include(wagtail_urls)),
prefix_default_language=False,
)
/pt/ works as expected.
I've tried changing the slug on the kri page to "kri", but I'm guessing the code is still getting stripped out somewhere, as that still doesn't resolve.
I was expecting the kri page that I have created to resolve like the pt translation successfully does.