Traductions

Ajouter du texte à traduire

Lorsque vous ajoutez du texte qui doit être traduit dans les templates html, vous devez les mettre dans un bloc :

{% trans %}Texte à traduire{% endtrans %}

Dans le code python, vous devez utiliser :

lazy_gettext("Texte à traduire")

Vous devez ensuite extraire ces messages à traduire pour qu’ils soient ajoutés au fichier web/translations/messages.pot avec :

just translation-extract

Vous pouvez ensuite mettre à jour les « catalogues » des différentes langues avec :

just translation-update

Cette commande va mettre à jour les « catalogues » existants avec de nouveaux messages (sans écraser ceux qui ont déjà été traduits).

Traduire du texte

Les traductions sont gérées via Weblate. Weblate synchronise automatiquement les traductions avec le dépôt Git (branche main).

Lors de la traduction, il ne faut pas traduire les motifs du type %(...)s mais simplement mettre l’équivalent traduit. Par exemple, pour une traduction vers l’anglais :

msgid "Inviter quelqu'un à %(this_meeting)s."
msgstr "Invite someone to this meeting."

Développement local

Pour tester les traductions en local, vous devez compiler les « catalogues » :

just translation-compile

Il faut ensuite reconstruire le conteneur web, par exemple avec :

docker compose up web -d --build

Ajouter une langue

Vous pouvez ajouter une nouvelle langue avec :

pybabel init --input-file web/translations/messages.pot --output-dir web/translations --locale LANG

Vous devez ensuite suivre les étapes précédentes pour faire la traduction dans cette nouvelle langue.