Aller au contenu principal

Concepts

Pourquoi un système de traduction centralisé ?

Au départ, les traductions du site étaient gérées avec :

  • un template en français
  • un template en anglais

👉 Cette approche fonctionne pour quelques pages, mais devient vite problématique dès que :

  • le nombre de pages augmente
  • le contenu évolue souvent
  • de nouvelles langues doivent être ajoutées
attention

Dupliquer les templates entraîne rapidement :

  • des incohérences de contenu
  • des oublis lors des modifications
  • une maintenance lourde

Le choix : l’i18n Django

Le projet utilise désormais le système de traduction natif de Django.

Principe général

  1. On marque les textes traduisibles dans :
    • les templates
    • le code Python
  2. Django extrait ces textes dans des fichiers de traduction
  3. Chaque langue possède ses propres traductions
  4. Django affiche automatiquement la bonne version selon la langue active
info

Avantage clé :
👉 une seule source de vérité pour le contenu, plusieurs langues pour l’affichage


Où vivent les traductions ?

Les traductions sont stockées dans des fichiers .po :


locale/<langue>/LC_MESSAGES/django.po

Chaque fichier associe :

  • un texte source
  • sa traduction dans la langue cible

Ces fichiers sont ensuite compilés en .mo, utilisés par Django à l’exécution.