Add i18n URL routing and locale middleware for language switching

This commit is contained in:
MandelBot
2026-03-16 02:36:38 +00:00
parent 18c75598ba
commit b5639b43e9
2 changed files with 36 additions and 0 deletions

View File

@@ -22,6 +22,29 @@ from ocyan.main.settings import * # pylint:disable=W0401,W0614
INSTALLED_APPS = ["mandelstudio"] + INSTALLED_APPS INSTALLED_APPS = ["mandelstudio"] + INSTALLED_APPS
# Use project-local URLConf so language-prefixed URLs are supported.
ROOT_URLCONF = "mandelstudio.urls"
# Enable request language negotiation.
if "django.middleware.locale.LocaleMiddleware" not in MIDDLEWARE:
if "django.contrib.sessions.middleware.SessionMiddleware" in MIDDLEWARE:
idx = MIDDLEWARE.index("django.contrib.sessions.middleware.SessionMiddleware") + 1
MIDDLEWARE.insert(idx, "django.middleware.locale.LocaleMiddleware")
else:
MIDDLEWARE.insert(0, "django.middleware.locale.LocaleMiddleware")
LANGUAGE_CODE = "nl"
LANGUAGES = [
("nl", "Nederlands"),
("en", "English"),
("de", "Deutsch"),
("fr", "Français"),
("es", "Español"),
("it", "Italiano"),
("pt", "Português"),
("ru", "Русский"),
]
STATIC_ROOT = str(BASE_PATH / "static") STATIC_ROOT = str(BASE_PATH / "static")
MEDIA_ROOT = str(BASE_PATH / "media") MEDIA_ROOT = str(BASE_PATH / "media")
PRIVATE_MEDIA_ROOT = str(BASE_PATH / "private") PRIVATE_MEDIA_ROOT = str(BASE_PATH / "private")

13
mandelstudio/urls.py Normal file
View File

@@ -0,0 +1,13 @@
from django.conf.urls.i18n import i18n_patterns
from django.urls import include, path
from ocyan.main.urls import urlpatterns as ocyan_urlpatterns
urlpatterns = [
path("i18n/", include("django.conf.urls.i18n")),
]
urlpatterns += i18n_patterns(
*ocyan_urlpatterns,
prefix_default_language=False,
)