Django LocaleMiddleware仅适用于LANGUAGE_CODE语言

问题描述

我的目标是拥有以下条件:

www.example.com/en提供了一个英语网站

www.example.com/de提供了一个德语网站

我正在为此使用Django 3.1。

我的settings.py包含以下内容:

LANGUAGE_CODE = 'en'
prefix_default_language=True
TIME_ZONE = 'Europe/Berlin'
USE_I18N = True
USE_L10N = True
USE_TZ = True
LANGUAGES = [
    ('en','English'),('de','German')
]
LOCALE_PATHS = (
    os.path.join(BASE_DIR,'templates/locale'),)
MIDDLEWARE_CLASSES = [
    'django.contrib.sessions.middleware.SessionMiddleware','django.middleware.locale.LocaleMiddleware','django.middleware.common.CommonMiddleware',]

我的根urls.py包含以下内容:

urlpatterns = [
    path('admin/',admin.site.urls),path('accounts/',include('allauth.urls')),path('i18n/',include('django.conf.urls.i18n')),]
urlpatterns += i18n_patterns(
    path('',include('mainpage.urls',namespace='mainpage')),)

如果我访问www.example.com/en,它会起作用,如果我访问www.example.com/de,则会出现404错误。

如果我现在更改

LANGUAGE_CODE = 'en'

LANGUAGE_CODE = 'de'

www.example.com/de可以工作,但是www.example.com/en会给我404错误。 我该如何解决这个问题,以便对两者都适用?我认为它不应该依赖LANGUAGE_CODE,对吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)