Traduction & Multilingue
Étendre le i18n Django avec traduction temps réel, détection de langue et adaptation culturelle.
Django i18n · DeepL/OpenAI · cache ROI: très élevé pour SaaS globaux Effort: moyen Complexité: faible+
Architecture de référence
Middleware Lang → Service de traduction (cache Redis) → Post-edit humain (admin) → Persisté en clés/segments.
Quick Wins
Pièges & Anti-patterns
middleware.py python
class LangDetect:
def __init__(self, get_resp):
self.get_resp = get_resp
def __call__(self, req):
req.user_lang = (req.GET.get('lang') or req.headers.get('Accept-Language','fr')[:2])
return self.get_resp(req)services/translate.py python
from django.core.cache import cache
def translate(segment, src='fr', tgt='en'):
key = f'tr:{src}:{tgt}:{hash(segment)}'
if (v := cache.get(key)):
return v
# v = deepl_or_openai(segment, src, tgt)
v = segment # demo
cache.set(key, v, 86400)
return vProchaines étapes : Exposer /api/translate pour le front; ajouter Quality Estimation pour prioriser la relecture.
