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 :
make translation-extract
Vous pouvez ensuite mettre à jour les « catalogues » des différentes langues avec :
make translation-update
Cette commande va mettre à jour les catalogues existants avec de nouveaux messages (sans écraser ceux qui ont déjà été traduits) que vous pouvez alors traduire dans la langue voulue.
Traduire du texte
Les fichiers à traduire sont web/b3desk/translations/*/LC_MESSAGES/messages.po
.
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."
Une fois les traductions réalisées, vous devez compiler le catalogue pour qu’elle soient visible pour l’utilisateur avec :
make 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.