Reputation: 355
I am using Django 3.0.4. I am trying to setup multiple languages in my project but for some reason only the default language is accessible. Here's my setup:
settings.py:
MIDDLEWARE = [
...
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
...
]
LANGUAGES = (
('en', _('English')),
('el', _('Greek')),
)
LANGUAGE_CODE = 'en'
USE_I18N = True
USE_L10N = False
USE_TZ = True
LOCALE_PATHS = (
os.path.join(BASE_DIR, 'locale'),
)
urls.py:
from django.conf.urls.i18n import i18n_patterns
urlpatterns = [
path('i18n/', include('django.conf.urls.i18n')),
path('superadmin/', admin.site.urls),
]
# Enable debug toolbar
if settings.DEBUG:
import debug_toolbar
urlpatterns = [
path('__debug__/', include(debug_toolbar.urls)),
] + urlpatterns
urlpatterns += i18n_patterns(
path(
'dashboard/',
include('fusers.dashboard_urls'),
name="usersDashboard"
),
)
And the result is that I cannot access the dashboard/
without the default language as a prefix:
/en/dashboard/ --OK
/dashboard/ --404
/el/dashboard/ --404
Upvotes: 2
Views: 967
Reputation: 355
It was my bad.
I have multiple settings files for Development and Production and I forgot to include 'django.middleware.locale.LocaleMiddleware'
in the Dev settings.
Upvotes: 2