from .containers import get_container def translation_processor(request): """Injecte les textes traduits dans tous les templates.""" lang = request.session.get("language", "Français") return { "txt": get_container() .infrastructure.translation_service() .get_translations(lang), "current_lang": lang, } def achievements_processor(request): """Injecte les nouveaux succès débloqués pour affichage Toast.""" new_achievements = request.session.get("new_achievements", []) if new_achievements: # On vide la session après récupération pour ne pas les afficher deux fois request.session["new_achievements"] = [] return {"newly_unlocked_achievements": new_achievements} def features_processor(request): """Rend les Feature Flags disponibles dans tous les templates.""" from django.conf import settings # noqa: E402 return {"features": getattr(settings, "FEATURE_FLAGS", {})} def notifications_processor(request): """Injecte le nombre de notifications non lues.""" if request.user.is_authenticated: from .models import Notification # noqa: E402 unread_count = Notification.objects.filter( user=request.user, is_read=False ).count() return {"unread_notifications_count": unread_count} return {"unread_notifications_count": 0}