Documentation PostgreSQL 8.0.25 | ||||
---|---|---|---|---|
Pr�c�dent | Arri�re rapide | Avance rapide | Suivant |
Les programmes PostgreSQL (serveur et client) peuvent afficher leur message dans la langue pr�f�r�e de l'utilisateur — si les messages ont �t� traduits. Cr�er et maintenir les ensembles de messages traduits n�cessite l'aide de personnes parlant leur propre langue et souhaitant contribuer � PostgreSQL. Il n'est nul besoin d'�tre un d�veloppeur pour cela. Cette section explique comment apporter son aide.
Les comp�tences dans sa langue d'un traducteur ne seront pas jug�es — cette section concerne uniquement les outils logiciels. Th�oriquement, seul un �diteur de texte est n�cessaire. Mais ceci n'est vrai que dans le cas tr�s improbable o� un traducteur ne souhaiterait pas tester ses traductions des messages. Lors de la configuration des sources, il faudra s'assurer d'utiliser l'option --enable-nls. Ceci assurera �galement la pr�sence de la biblioth�que libintl et du programme msgfmt dont tous les utilisateurs finaux ont ind�niablement besoin. Pour tester son travail, il sera utile de suivre les parties pertinentes des instructions d'installation.
Pour commencer un nouvel effort de traduction ou pour faire un assemblage de catalogues de messages (d�crit ci-apr�s), il faudra installer respectivement les programmes xgettext et msgmerge dans une impl�mentation compatible GNU. Il est pr�vu dans le futur que xgettext ne soit plus n�cessaire lorsqu'une distribution empaquet�e des sources est utilis�e (� partir du CVS, il en sera toujours besoin). GNU Gettext 0.10.36 ou ult�rieure est actuellement recommand�.
Toute impl�mentation locale de gettext devrait �tre disponible avec sa propre documentation. Une partie en est certainement dupliqu�e dans ce qui suit mais des d�tails compl�mentaires y sont certainement disponibles.
Les couples de messages originaux (anglais) et de leurs (possibles) traductions sont conserv�s dans les catalogues de messages, un pour chaque programme (bien que des programmes li�s puissent partager un catalogue de messages) et pour chaque langue cible. Il existe deux formats de fichiers pour les catalogues de messages : le premier est le fichier <<�PO�>> (pour "Portable Object" ou Objet Portable), qui est un fichier texte muni d'une syntaxe sp�ciale et que les traducteurs �ditent. Le second est un fichier <<�MO�>> (pour "Machine Object" ou Objet Machine), qui est un fichier binaire engendr� � partir du fichier PO respectif et qui est utilis� lorsque le programme internationalis� est ex�cut�. Les traducteurs ne s'occupent pas des fichiers MO ; en fait, quasiment personne ne s'en occupe.
L'extension du fichier de catalogue de messages est, sans surprise, soit .po, soit .mo. Le nom de base est soit le nom du programme qu'il accompagne soit la langue utilis�e dans le fichier, suivant la situation. Ceci peut s'av�rer �tre une source de confusion. Des exemples sont psql.po (fichier PO pour psql) ou fr.mo (fichier MO en fran�ais).
Le format du fichier PO est illustr� ici :
# commentaire msgid "cha�ne originale" msgstr "cha�ne traduite" msgid "encore une originale" msgstr "encore une de traduite" "les cha�nes peuvent �tre sur plusieurs lignes, comme ceci" ...
Les cha�nes msgid sont extraites des sources du programme. (Elles n'ont pas besoin de l'�tre mais c'est le moyen le plus commun). Les lignes msgstr sont initialement vides puis compl�t�es avec les cha�nes traduites. Les cha�nes peuvent contenir des caract�res d'�chappement de style C et peuvent �tre sur plusieurs lignes comme le montre l'exemple ci-dessus. (La ligne suivante doit d�marrer au d�but de la ligne.)
Le caract�re # introduit un commentaire. Si une espace fine suit imm�diatement le caract�re #, c'est qu'il s'agit l� d'un commentaire maintenu par le traducteur. On trouve aussi des commentaires automatiques qui n'ont pas d'espace fine suivant imm�diatement le caract�re #. Ils sont maintenus par les diff�rents outils qui op�rent sur les fichiers PO et ont pour but d'aider le traducteur.
#. commentaire automatique #: fichier.c:1023 #, drapeau, drapeau
Les commentaires du style #. sont extraits du fichier source o� le message
est utilis�. Il est possible que le d�veloppeur ait ajout� des informations
pour le traducteur, telles que l'alignement attendu. Le commentaire #:
indique l'emplacement exact o� le message est utilis� dans le source. Le
traducteur n'a pas besoin de regarder le source du programme, mais il peut
le faire s'il subsiste un doute sur l'exactitude d'une traduction. Le commentaire #,
contient des drapeaux d�crivant le message d'une certaine fa�on. Il existe
actuellement deux drapeaux : fuzzy est positionn� si le
message risque d'�tre rendu obsol�te par des changements dans les
sources. Le traducteur peut alors v�rifier ceci et supprimer ce drapeau.
Notez que les messages <<�fuzzy�>> ne sont pas accessibles �
l'utilisateur final. L'autre drapeau est c-format
indiquant que le message utilise le format de la fonction C
printf
. Ceci signifie que la traduction devrait aussi
�tre de ce format avec le m�me nombre et le m�me type de param�tres fictifs. Il
existe des outils qui v�rifient que le message est une cha�ne au format
printf et valident le drapeau c-format en cons�quence.
OK, alors comment faire pour cr�er un catalogue de messages <<�vide�>> ? Tout d'abord, se placer dans le r�pertoire contenant le programme dont on souhaite traduire les messages. S'il existe un fichier nls.mk, alors ce programme est pr�par� pour la traduction.
S'il y a d�j� des fichiers .po, alors quelqu'un a d�j� r�alis� des travaux de traduction. Les fichiers sont nomm�s langue.po, o� langue est le code de langue sur deux caract�res (en minuscules) tel que d�fini par l' ISO 639-1, c'est-�-dire fr.po pour le fran�ais. S'il existe r�ellement un besoin pour plus d'une traduction par langue alors les fichiers peuvent �tre renomm�s langue_region.po o� region est le code de langue sur deux caract�res (en majuscules), tel que d�fini par l'ISO 3166-1, c'est-�-dire pt_BR.po pour le portuguais du Br�sil. Si vous trouvez la langue que vous souhaitez, vous pouvez commencer � travailler sur ce fichier.
Pour commencer une nouvelle traduction, il faudra pr�alablement ex�cuter la commande
gmake init-po
Ceci cr�era un fichier nomprog.pot. (.pot pour le distinguer des fichiers PO qui sont <<�en production�>>. Le T signifie <<�template�>> (NdT : mod�le en anglais). On copiera ce fichier sous le nom langue.po. On peut alors l'�diter. Pour faire savoir qu'une nouvelle langue est disponible, il faut �galement �diter le fichier nls.mk et y ajouter le code de la langue (ou de la langue et du pays) avec une ligne ressemblant � ceci :
AVAIL_LANGUAGES := de fr
(D'autres langues peuvent appara�tre, bien entendu.)
� mesure que le programme ou la biblioth�que change, des messages peuvent �tre modifi�s ou ajout�s par les d�veloppeurs. Dans ce cas, il n'est pas n�cessaire de tout recommencer depuis le d�but. � la place, on lancera la commande
gmake update-po
qui cr�era un nouveau catalogue de messages vides (le fichier pot avec lequel la traduction a �t� initi�e) et le fusionnera avec les fichiers PO existants. Si l'algorithme de fusion a une incertitude sur un message particulier, il le marquera <<�fuzzy�>> comme expliqu� ci-dessus. Dans la cas o� quelque chose se passerait mal, l'ancien fichier PO est sauvegard� avec une extension .po.old.
Les fichiers PO sont �ditables avec un �diteur de texte standard. Le traducteur doit seulement modifier l'emplacement entre les guillemets apr�s la directive msgstr, peut ajouter des commentaires et modifier le drapeau fuzzy. (NdA : Il existe, ce qui n'est pas surprenant, un mode PO pour Emacs, que je trouve assez utile.)
Les fichiers PO n'ont pas besoin d'�tre enti�rement remplis. Le logiciel retournera automatiquement � la cha�ne originale si une traduction n'est pas disponible ou est laiss�e vide. Soumettre des traductions incompl�tes pour les inclure dans l'arborescence des sources n'est pas un probl�me ; cela permet � d'autres personnes de r�cup�rer le travail commenc� pour le continuer. N�anmoins, les traducteurs sont encourag�s � donner une haute priorit� � la suppression des entr�es fuzzy apr�s avoir fait une fusion. Les entr�es fuzzy ne seront pas install�es ; elles servent seulement de r�f�rence � ce qui pourrait �tre une bonne traduction.
Certaines choses sont � garder � l'esprit lors de l'�dition des traductions :
S'assurer que si la cha�ne originale se termine par un retour chariot, la traduction le fasse bien aussi. De m�me pour les tabulations, etc.
Si la cha�ne originale est une cha�ne au format printf
, la
traduction doit l'�tre aussi. La traduction doit �galement avoir les
m�me sp�cificateurs de format et dans le m�me ordre. Quelques fois, les
r�gles naturelles de la langue rendent cela impossible ou tout au moins
difficile. Dans ce cas, il est possible de modifier les sp�cificateurs de format
de la fa�on suivante :
msgstr "Die Datei %2$s hat %1$u Zeichen."
Le premier param�tre fictif sera alors utilis� par le deuxi�me argument de la
liste. Le chiffre$ a
besoin de suivre imm�diatement le %, avant tout autre manipulateur de
format. (Cette fonctionnalit� existe r�ellement dans la famille des
fonctions printf
, mais elle est peu connue, n'ayant
que peu d'utilit� en dehors de l'internationalisation des messages.)
Si la cha�ne originale contient une erreur linguistique, on pourra la rapporter (ou la corriger soi-m�me dans le source du programme) et la traduire normalement. La cha�ne corrig�e peut �tre fusionn�e lorsque les programmes sources auront �t� mis � jour. Si la cha�ne originale contient une erreur factuelle, on la rapportera (ou la corrigera soi-m�me) mais on ne la traduira pas. � la place, on marquera la cha�ne avec un commentaire dans le fichier PO.
Maintenir le style et le ton de la cha�ne originale. En particulier, les messages qui ne sont pas des phrases (cannot open file %s, soit ne peut pas ouvrir le fichier %s) ne devraient probablement pas commencer avec une lettre capitale (si votre langue distingue la casse des lettres) ou finir avec un point (si votre langue utilise des marques de ponctuation). Lire Section 43.3 peut aider.
Lorsque la signification d'un message n'est pas connue ou s'il est ambig�, on pourra demander sa signification sur la liste de diffusion des d�veloppeurs. Il est possible qu'un anglophone puisse aussi ne pas le comprendre ou le trouver ambig�. Il est alors pr�f�rable d'am�liorer le message.
Pr�c�dent | Sommaire | Suivant |
Guide de style des messages d'erreurs | Niveau sup�rieur | Pour le d�veloppeur |