{{tag>tutoriel}}
====== Traduction de programmes avec des fichiers *.po (internationalisation) ======
Les fichiers de traduction utilisent des fichiers *.po ou *.mo.
Il suffit donc de récupérer le fichier original et de l'éditer.
===== Pré-requis =====
* Installez le paquet **[[apt>Gtranslator]]** ou en ligne de commande :$ sudo apt install Gtranslator
* Installez le paquet **[[apt>spellutils]]**$ sudo apt install spellutils
* Installez le paquet **[[apt>aspell]]** ou en ligne de commande :$ sudo apt install aspell
Pour installer le français,
* Allez sur [[https://ftp.gnu.org/gnu/aspell/dict/0index.html]]
* Téléchargez et décompressez le dictionnaire français dans un répertoire de travail
* Si Aspell et Pspell sont installés et que aspell, word-list-compress et pspell-config sont dans le path, commencez par :$ ./configure
Finding Dictionary file location ... /usr/lib/aspell
Finding Data file location ... /usr/lib/aspell
* Construisez le paquet avec:$ sudo make
* installez-le avec :$ sudo make install
* Pour nettoyer après la construction :$ sudo make clean
* Pour désinstaller les fichiers :$ sudo make uninstall
Une fois les listes de mots installées, vous pouvez exécuter aspell avec l'option --language-tag=fr. Vous pouvez aussi choisir le dictionnaire l'option -d ou --master d'Aspell.
Vous pouvez choisir un des dictionnaires suivants :
* fr_CH-40
* fr_CH-60
* fr_CH-80
* fr_FR-40
* fr_FR-60
* fr_FR-80
===== Première étape : charger le fichier *.po ou *.pot fourni par le programmeur =====
***.po** est le fichier en cours de traduction, ***.pot** est un modèle vide à remplir.
Par exemple, pour **gnome-recipes** :
* allez sur la page gnome de gnome-recipes [[https://wiki.gnome.org/Apps/Recipes]]
* cliquez sur le lien __Development Resources__ :{{ tutoriel:programmation:internationaliser:traduction-01.png?400 |}}
* cliquez sur le lien __Translations__ :{{ tutoriel:programmation:internationaliser:traduction-02.png?400 |}}
* cliquez sur le lien de la traduction à travailler :{{ tutoriel:programmation:internationaliser:traduction-03.png?400 |}}
* un clic droit sur le bouton du fichier po :{{ tutoriel:programmation:internationaliser:traduction-04.png?400 |}}
* choisissez Enregistrer la cible du lien sous et enregistrez le fichier po dans un répertoire de travail.
===== Autres étapes =====
==== Démarrage ====
Ouvrez le fichier ***.po** dans **Gtranslator** :
{{ tutoriel:programmation:internationaliser:traduction-05.png?400 |}}
==== Traduire ====
Traduisez les phrases.
Attention :
Cette traduction automatique peut être assez approximative ! D'ailleurs, le résultat est marqué comme tel, sur fond jaune ! Il convient donc de tout vérifier ! Démonstration :
list -> liste add gallery -> Ajouter une langue Directory to scan -> répondre à ce commentaire
* 1e ligne : Traduction correcte : Faites ou allez dans "Edition/La traduction est approximative" pour valider. La traduction est désormais sur fond blanc.
* 2e ligne : Traduction partiellement correcte : Il faut corriger dans la partie dédiée en bas et à gauche.
* 3e ligne : Traduction totalement fantaisiste à modifier entièrement.
Quelques astuces :
* Sur fond bleu : à traduire entièrement
* Sur fond jaune : traduction à vérifier
* Sur fond blanc : traduction validée
Tout n'est pas à traduire ! Certaines parties contiennent des variables de programmation à respecter !
* Les variables sont précédées du signe "%" qui doit être maintenu. Ainsi &Update #1%s sera traduit par &Mettre à &jour #1%s.
* Le caractère "&" est utilisé pour indiquer le soulignement du caractère qui suit immédiatement. Ainsi &Fichier donnera Fichier. (Pour rappel, un tel soulignement d'une lettre indique le raccourci clavier à utiliser avec la touche ALT.)
Pour sauvegarder, passez par "enregistrer sous" en nommant votre fichier fr_FR.po.
Vous pouvez faire également des copies de sécurité pour reprendre votre travail en cas de corruption du fichier *.po.
==== Vérifier l'orthographe du fichier .po ====
Le paquet **spellutils** contient un outil appelé **pospell** qui permet de vérifier l'orthographe d'un fichier .po, en utilisant un correcteur orthographique tel que **aspell** :
$ pospell -n logiciel.po -p aspell check %f
==== Valider un fichier .po ====
La commande **msgfmt** du paquet gettext produit une version binaire ***.mo** du fichier *.po, utilisable pour traduire le logiciel, mais aussi valide son format :
$ msgfmt -c -o logiciel.mo logiciel.po
==== Mettre en place la localisation ====
C'est un fichier *.mo qui assure la localisation qui est généralement enregistré dans :
/usr/share/locale/fr/LC_MESSAGES/nom_de_logiciel.mo
ou
/usr/share/locale/fr_FR/LC_MESSAGES/nom_de_logiciel.mo
$ sudo cp nom_de_logiciel.mo /usr/share/locale/fr_FR/LC-MESSAGES/nom_de_logiciel.mo
Lancez ou relancez l'application pour vérifier le résultat.
===== Conclusion =====
===== Problèmes connus =====
===== Voir aussi =====
* **(fr)** [[https://traduc.org/L%27adaptation_des_logiciels/Exemple%20d%27utilisation%20de%20Gettext]]
* Traduire un logiciel open-source (poEdit) : [[https://www.commentcamarche.net/faq/6326-traduire-un-logiciel-open-source-poedit]]
* comment traduire un logiciel open source mais a partir de zero quand il est encore monolanguage :[[https://openclassrooms.com/forum/sujet/comment-traduire-un-logiciel-open-source-23537]]
* [[https://www.commentcamarche.net/faq/6326-traduire-un-logiciel-open-source-poedit]]
----
//Basé sur << [[http://|Article]] >> par Auteur.//