Traduire graveman! dans une autre langue
===============================================================================
This file is part of graveman!

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.
===============================================================================
version 1 - 17/04/05 - scresto _at_ gmail.com



1.Présentation
---------------
Je recherche toujours des personnes pour traduire graveman! dans une nouvelle
langue, si vous êtes intéressés vous serez toujours le bienvenu :-)

Ce fichier a pour but de présenter les 2 - 3 trucs a connaître pour débuter
la traduction de graveman. Si vous avez le moindre problème n'hésitez pas à me
contacter par mail: scresto _AT_ gmail.com.

Graveman utilise gnu gettext pour la gestion des différentes langues, tous les
labels utilisés par graveman sont regroupés dans le fichier ./po/graveman.pot

2.Mise en place de l'environnement pour une nouvelle traduction
--------------------------------------------------------------

Pour traduire graveman dans une nouvelle langue il faut copier ce fichier en
lui donnant comme nouveau nom le préfixe de la langue voulu.
Vous pouvez vérifier la langue paramétrée sur votre système en tapant:

echo $LANG

qui renvoi chez moi:
fr_FR.ISO-8859-1


Donc, par exemple pour traduire graveman en français on utiliserai le
préfixe "fr".

cp ./po/graveman.pot ./po/fr.po

Il faut ensuite éditer le fichier configure.in et rajouter le préfixe choisi
à la variable ALL_LINGUAS.
Par exemple pour une traduction en français il faudrait compléter la ligne:

ALL_LINGUAS="cs de es it lt nl no pl pt_BR ru sv"

Pour qu'elle devienne:

ALL_LINGUAS="cs de es it lt nl no pl pt_BR ru sv fr"

Il faut maintenant demander a graveman de tenir compte de ce nouveau fichier,
pour cela il faut utiliser la commande :

./autogen.sh


La nouvelle langue devrait apparaître lors de la fin d'exécution:

[...]
checking for gmsgfmt... /usr/bin/msgfmt
checking for xgettext... /usr/bin/xgettext
checking for catalogs to be installed...  cs de es fr it lt nl no pl pt_BR ru sv
[...]



3.Traduire de graveman
----------------------
Comme dis plus haut tous les messages affichés et utilisés par graveman sont
contenu dans le fichier ./po/fr.po que l'on vient de créer, c'est lui qu'il
faut modifier pour y ajouter les traductions.

Dans les premières lignes il faut remplacer quelques variables pour y placer
le nom de la langue, votre nom ainsi que l'encodage utilisé.
Repérez les lignes:
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2005-04-17 19:00+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"


On pourrai remplacer:
PACKAGE VERSION par graveman
FULL NAME <EMAIL@ADRESS> par votre nom + votre adresse email
LANGUAGE par le nom de la langue en anglais (FRENCH, DUTCH...)
CHARSET par UTF-8
Je vous conseille d'utiliser le charset UTF-8 si votre éditeur
de texte le supporte. Sinon utilisez le charset convenant à la
langue à traduire (en général iso-8859-1 ou iso-8859-15 pour
les langues occidentales)


Ce fichier est une série de lignes commençant par msgid et msgstr.
Toutes les lignes commençant par msgid sont les messages originaux
utilisés par graveman, il ne faut pas les modifier. Il faut compléter
les lignes commençant par msgstr se trouvant juste en dessous.
Les lignes commençant par des # sont des commentaires et informent de
l'endroit où sont utilisés ces lignes dans graveman.

Par exemple dans le cas de la traduction française:

#: src/callbacks.c:719
msgid "Cannot add this drive !"
msgstr "Ne peut pas ajouter ce lecteur !"

Le message "Cannot add this drive !" est utilisé à la ligne 719 du fichier
src/callback.c, en français il sera remplacé par "Ne peut pas ajouter ce lecteur !".


Lorsque msgstr n'est pas renseigné graveman affichera par défaut le contenu
du message msgid.


4.Tester la traduction
----------------------
Après avoir traduit les messages il faut utiliser une commande pour les installer
sur votre machine dans un emplacement ou graveman les trouvera, pour cela il faut
aller dans le répertoire "po" (vous aurez sûrement besoin d'avoir les droits root
pour utiliser la commande "make install") :

cd po
make
make install


Vérifiez maintenant la langue paramétrée sur votre système:
echo $LANG

Le préfixe de la chaîne renvoyé doit correspondre au nom du fichier que vous venez
de créer, si il ne correspond pas votre traduction ne sera pas utilisé.
Pour changer la valeur de LANG et pour utiliser par exemple la traduction française
utilisez la commande:

LANG=fr
export LANG


Vous pouvez maintenant lancer graveman:

graveman

Qui doit maintenant utiliser et afficher les messages que vous venez de traduire.


5.Verifier la traduction
------------------------
Pour vérifier que tous les messages soient bien traduits et qu'il n'y ai aucun
problèmes il faut utiliser la commande "make update-po" dans le répertoire "po":

cd po
make update-po

Ce doit afficher un message de la sorte (dans votre langue):
fr:
.............................................. done.
440 translated messages, 9 fuzzy translations, 8 untranslated messages.


Il y a donc 440 messages traduits dans le fichier fr.po,
dont 9 posant problemes (fuzzy) et 8 non traduits.

Il est important d'aller corriger ceux marqués "fuzzy", pour le faire il
faut reouvrir le fichier "po/fr.po" et y rechercher toutes les occurrences
de la chaine "fuzzy" que le makefile a placé devant toutes les traductions
posant problémes.
après avoir corrigé le problème il faut supprimer la ligne "# fuzzy" correspondante.

Il est aussi prudent de rechercher toutes les occurrences de la chaîne "c-format"
et de vérifier que les traductions correspondent bien et qu'il y ai bien le même
nombre de "%s" et de "%d" dans les chaînes "msgstr" et "msgid".


6.Autres fichiers à traduire
----------------------------
Il y a aussi un autre fichier dans lequel il faut rajouter 3 entrées, le fichier
desktop/graveman.desktop.in. Je vous conseille d'ouvrir ce fichier et vous verrez
dessuite lesquelles.
Donc pour notre exemple de traduction française il faudrait rajouter:
Name[fr]=Graveman
GenericName[fr]=Créateur de CD
Comment[fr]=Crée et copie des CD audio et des CD de données

Pour les plus courageux on peu aussi traduire le fichier man/graveman.man que
l'on renommerai en man/graveman.fr.man :-)


7.M'envoyer tout ces fichiers
-----------------------------
Une fois faites toutes ces opérations envoyez moi ces fichiers, et je les
rajouterai avec plaisir dans graveman! :-)
Pour récapituler, pour la traduction française il faut m'envoyer les fichiers
suivant:
po/fr.po
desktop/graveman.desktop.in

Et si vous l'avez traduit:
man/graveman.fr.man


Je vous tiendrai de toute façon au courant de l'intégration de votre traduction
à graveman.

Sylvain Cresto