Comment traduire une application

Source de l’article, intégralement copié:

http://pclinuxos-fr.org/2011/01/15/howto-translate-ou-comment-traduire-une-application

Ce tutoriel est une traduction de celui rédigé par Pinoc, sur le forum de PCLinuxOS. Il s’applique aux paquets RPM, et peut aussi être transposé à d’autres formats de paquet, selon votre distribution.

Pinoc commence ainsi:
Peut-être pouvons-nous utiliser ce post (Howto translate) pour recueillir, mettre à jour, ou modifier toutes informations utiles nécessaires aux traductions.

Plus d’informations sur les commandes ci-dessous peuvent être trouvées à l’aide de la konsole (ou un autre terminal) ‘man <commande>’ (<où > commande peut être tr / min, msgfmt, etc) et bien sûr il y a aussi Google…

Supposons que nous nous penchions sur l’application Synaptic (ceci est aussi vrai pour n’importe quelle autre application) et que nous nous intéressions à la locale « fr » (où « fr » correspond au français tout comme « de » correspond à l’allemand et « it » à l’italien, etc… disons génériquement « <yy> »). Les informations relatives à la langue, à l’intérieur d’un paquetage rpm, sont contenues dans les fichiers « mo » qui sont habituellement stockés sous /usr/share/locale/<yy>/LC_MESSAGES/.

Les fichiers « mo » sont les versions compilées des fichiers éditables « po », aussi les fichiers « po » sont ceux où la traduction est en fait réalisée. Quand vous avez fini de traduire le fichier « po » et que vous l’avez converti en un fichier « mo », ce fichier « mo » devra être proposé aux packagers de PCLinuxOS pour être inclus dans un paquet rpm lors de sa prochaine mise à jour.

Comment traduire / éditer les fichiers po

Tout d’abord installez, via Synaptic, l’application « poedit » qui est un excellent outil de traduction.

Lancez Poedit:

  • Sous « Catalogue », vous trouvez une entrée qui permet de « traduire automatiquement » mais je n’ai jamais essayé.
  • Assurez-vous de vérifier dans: Catalogue -> Configuration -> Onglet Informations que vous avez spécifié un nom de projet valide et la version, sinon vous ne pouvez pas enregistrer votre travail de traduction.
  • Veuillez également compléter les autres champs, en particulier « Jeu de carectères: iso-8859-15 » et « Jeu de caractères du code Source: utf-8 ».
Comment convertir un fichier « mo » <–> en fichier « po »

Pour convertir un fichier « mo » en un fichier éditable « po », il suffit d’utiliser la commande suivante:

msgunfmt synaptic.mo -o synaptic.po

Et inversement, pour convertir le fichier éditable « po » en un fichier « mo », la commande sera:

msgfmt synaptic.po -o synaptic.mo
liste Howto / extraire les fichiers mo

a) à partir d’un paquetage rpm/deb

Pour voir quels fichiers de langue sont déjà disponibles à l’intérieur d’un paquetage rpm, faites la commande suivante :

rpm -qlp <chemin complet vers>/synaptic-0.57.2-20pclos2007.i586.rpm | grep synaptic.mo

Ou utilisez la même commande sans « | grep synaptic.mo », simplement pour lister le contenu de l’archive rpm.

D’autres infos utiles peuvent être obtenus avec la commande :

rpm -qip <chemin complet vers>/synaptic-0.57.2-20pclos2007.i586.rpm

Pour extraire les fichiers d’une archive, copiez l’archive dans un nouveau dossier vide, puis dans ce nouveau dossier, utilisez la commande:

rpm2cpio synaptic-0.57.2-20pclos2007.i586.rpm | cpio -idmv

Si vous trouvez quelque chose d’intéressant à l’intérieur d’une archive deb, utilisez la commande:

xv <quelquechose>.deb

b) à partir de scripts bash

Par exemple à partir du script « update-notifier  » (remplacer update-notifier par le nom du script que vous voulez traduire), allez dans votre répertoire home (commande: cd ~) et entrez:

bash --dump-po-strings /usr/bin/update-notifier | xgettext -L PO -o ~/update-notifier.pot -

Ensuite, entrez la commande:

msginit -l fr -i ~/update-notifier.pot -o ~/fr.po

Cet exemple est pour l’extraction des informations en langue française (fr), (changez « fr » par le code iso de la locale sur laquelle vous voulez travailler). Informations complémentaires: Localizing Bash scripts

Note: vous devez insérer le signe dollar ($) devant chaque entrée de texte dans votre script bash pour que la commande ‘bash –dump-po-strings’, tel ci dessus, reconnaisse la chaine de traduction par exemple :

zenity --error --text=$"Please run this script as root.\n\nExiting..."
Modifier un fichier PO (par exemple pour GetOpenOffice)

Ouvrez le fichier « po » avec poedit, aller au menu « Catalogue > Paramètres », onglet « Info Projet » : dans le champ « Nom du projet et version » insérez: « GetOpenOffice 0.6 », insérez votre langue et le pays et dans la rubrique « charset code source »: utf-8. Vous devez compléter ces champs sinon vous ne pourrez pas enregistrer le fichier modifié !

Localisation d’infos sur le web

Traduction : mypclinuxos , Ubuntu-Launchpad, firefox-addon, le ‘KlipOQuery ‘-panelapplet peut être installé via Synaptic et transférera le contenu du presse-papier au service de traduction sélectionné. KDE / Gnome: kde-l10n, gnome-i18n, kde-i18n, KDE-Localization

Locales: Locales, ISO_639

Si vous connaissez d’autres outils utiles, des applications, liens, tours de magie, ou que ce soit d’autre, alors s’il vous plait faites le nous savoir afin que nous puissions l’ajouter ici.

En espérant que cela vous aide, bonne chance,

Pinoc