Sommaire

Traduction

Pour traduire un projet Django, c’est relativement aisé, il n’y a pas énormément de code à ajouter et de préférence, si vous avez lu ce chapitre, vous prendrez la bonne habitude de coder directement en utilisant les raccourcis qui permettent d’activer la traduction dans votre code.

Car hélas, il faut tout de même indiquer à Django ce qu’il faut traduire, cela n’est pas totalement automatique et si vous l’oubliez, vos textes ne seront pas traduits.

Les mécanismes gérant la traduction dans Django s’appuient sur les outils open source gettext de GNU.

1. Principe général

Pour que la machinerie de traduction fonctionne, il faut activer USE_I18N = True dans votre fichier settings.py, vérifier que le processeur de templates ’django.core.context_processors.i18n’ est bien défini dans TEMPLATE_CONTEXT_PROCESSORS et que django.middleware.locale.LocaleMiddleware est installé dans MIDDLEWARE_CLASSES.

Si vous n’avez pas besoin de traduire votre site, supprimez le processeur et désactivez USE_I18N, cela optimisera votre site en évitant le chargement de la machinerie de traduction. 

Description du principe général de fonctionnement

On utilise ugettext() pour signaler à Django les chaînes de caractères à traduire : « ugettext(’ma chaine’) ». Il est de convention que, pour simplifier l’écriture, ...