Sith/docs/howto/translation.md

81 lines
1.7 KiB
Markdown
Raw Normal View History

2024-07-16 16:39:54 +00:00
Le code du site est entièrement écrit en anglais,
le texte affiché aux utilisateurs l'est également.
La traduction en français se fait
ultérieurement avec un fichier de traduction.
Voici un petit guide rapide pour apprendre à s'en servir.
## Dans le code du logiciel
Imaginons que nous souhaitons afficher "Hello"
et le traduire en français.
Voici comment signaler que ce mot doit être traduit.
Si le mot est dans le code Python :
```python
from django.utils.translation import gettext as _
help_text=_("Hello")
```
Si le mot apparaît dans le template Jinja :
```jinja
{% trans %}Hello{% endtrans %}
```
Si on est dans un fichier javascript ou typescript :
```js
gettext("Hello");
```
2024-07-16 16:39:54 +00:00
## Générer le fichier django.po
La traduction se fait en trois étapes.
Il faut d'abord générer un fichier de traductions,
l'éditer et enfin le compiler au format binaire pour qu'il soit lu par le serveur.
```bash
2024-12-13 22:41:24 +00:00
# Pour le backend
./manage.py makemessages --locale=fr -e py,jinja --ignore=node_modules
# Pour le frontend
./manage.py makemessages --locale=fr -d djangojs -e js,ts --ignore=node_modules --ignore=staticfiles/generated
2024-07-16 16:39:54 +00:00
```
## Éditer le fichier django.po
```locale
# locale/fr/LC_MESSAGES/django.po
# ...
msgid "Hello"
msgstr "" # Ligne à modifier
# ...
```
!!!note
Si les commentaires suivants apparaissent, pensez à les supprimer.
Ils peuvent gêner votre traduction.
```
#, fuzzy
#| msgid "Bonjour"
```
## Générer le fichier django.mo
Il s'agit de la dernière étape.
Un fichier binaire est généré à partir du fichier django.mo.
```bash
./manage.py compilemessages
```
!!!tip
Pensez à redémarrer le serveur si les traductions ne s'affichent pas