Features: 1) Activate translation based on request locale in CustomLocaleCommonMiddleware; 2) Activate translation within GrapheneJWTAuthorizationMiddleware;

Fixes: None;

Extra: None;
This commit is contained in:
Egor Pavlovich Gorbunov 2025-05-12 10:16:31 +03:00
parent 03eb6d03ca
commit 88a8c2e898

View file

@ -8,6 +8,7 @@ from django.core.exceptions import DisallowedHost
from django.http import HttpResponseForbidden from django.http import HttpResponseForbidden
from django.middleware.common import CommonMiddleware from django.middleware.common import CommonMiddleware
from django.shortcuts import redirect from django.shortcuts import redirect
from django.utils import translation
from rest_framework_simplejwt.authentication import JWTAuthentication from rest_framework_simplejwt.authentication import JWTAuthentication
from rest_framework_simplejwt.exceptions import InvalidToken from rest_framework_simplejwt.exceptions import InvalidToken
from sentry_sdk import capture_exception from sentry_sdk import capture_exception
@ -28,6 +29,7 @@ class CustomCommonMiddleware(CommonMiddleware):
class CustomLocaleCommonMiddleware(CommonMiddleware): class CustomLocaleCommonMiddleware(CommonMiddleware):
def process_request(self, request): def process_request(self, request):
request.locale = get_language_from_header(request.headers.get("Accept-Language", "")) request.locale = get_language_from_header(request.headers.get("Accept-Language", ""))
translation.activate(request.locale)
class GrapheneJWTAuthorizationMiddleware: class GrapheneJWTAuthorizationMiddleware:
@ -61,6 +63,8 @@ class GrapheneLocaleMiddleware:
selected_language = get_language_from_header(accept_language) selected_language = get_language_from_header(accept_language)
request.locale = selected_language request.locale = selected_language
translation.activate(request.locale)
return next(root, info, **args) return next(root, info, **args)