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
- On marque les textes traduisibles dans :
- les templates
- le code Python
- Django extrait ces textes dans des fichiers de traduction
- Chaque langue possède ses propres traductions
- 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.