Files
my2dos/core/middleware.py
2026-08-23 17:50:21 +02:00

25 lines
773 B
Python

from django.utils import translation
class UserLanguageMiddleware:
"""Prefer the authenticated user's saved language over browser/cookie language."""
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
user = getattr(request, 'user', None)
language = ''
if user and user.is_authenticated:
try:
language = user.preferences.language
except Exception:
language = ''
if language:
translation.activate(language)
request.LANGUAGE_CODE = language
response = self.get_response(request)
if language:
response.setdefault('Content-Language', language)
return response