Aller au contenu principal

Ajouter et maintenir des traductions

1. Marquer les textes traduisibles

Dans les templates Django

Toujours commencer par charger le module i18n :

{% load i18n %}

Texte simple

{% trans "Texte à traduire" %}

Texte sur plusieurs lignes

{% blocktrans %}
Texte
sur
plusieurs lignes
{% endblocktrans %}
Variante recommandée
{% blocktrans trimmed %}
Texte
sur
plusieurs lignes
{% endblocktrans %}

Avec des variables

{% blocktrans with annee=settings.RIF_DATE.year %}
Candidature RIF {{ annee }}
{% endblocktrans %}

2. Dans le code Python

Utiliser gettext_lazy (alias _) :

from django.utils.translation import gettext_lazy as _

verbose_name = _("Nom de l'entreprise")

3. Générer les fichiers de traduction

django-admin makemessages --all

Options utiles :

--ignore=.venv
--ignore=env
--no-obsolete

4. Renseigner les traductions

Deux options :

  • modifier les fichiers .po à la main
  • utiliser Rosetta (recommandé)

Rosetta (en local)

http://127.0.0.1:8000/rosetta

Connexion admin requise.

important

Je vous conseille de toujours utiliser Rosetta pour renseigner les traductions. C'est plus rapide et moins source d'erreurs.


5. Compiler les traductions

django-admin compilemessages