Project Oxygen & Ideo-LabIDEO LAB Dashboard 2026

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

  • Détecter Accept-Language + geo fallback.
  • Mettre en cache les segments.
  • Glossaire & style guide.

Pièges & Anti-patterns

  • Traduire l’HTML brut (casse le markup) — préférer les messages/segments.
  • Ne pas versionner les clés.

  • Priorité: querystring > cookie > header > défaut.
  • Logger les langues inconnues.
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)

  • Clés de cache par hash segment.
  • TTL 24h–7j selon flux.
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 v

  • Marquer segments ‘à valider’.
  • Règles de style (tu/vous, ton de marque).
  • Export/Import CSV pour traducteurs.
Prochaines étapes : Exposer /api/translate pour le front; ajouter Quality Estimation pour prioriser la relecture.