PO4A-GETTEXTIZE.1P(1) User Contributed Perl Documentation NOM po4a-gettextize - Convertir un fichier original (et sa traduction) en fichier PO SYNOPSIS po4a-gettextize -f fmt -m chapi.doc -l XX.doc -p XX.po (XX.po est le fichier de sortie, tous les autres sont des entrees) DESCRIPTION po4a (PO pour tout - PO for anything) facilite la maintenance de la traduction de la documentation en utilisant les outils gettext classiques. La principale caracteristique de po4a est qu'il decouple la traduction du contenu de la structure du document. Referez-vous a la page po4a(7) pour une introduction en douceur a ce projet. Le script po4a-gettextize vous aide a porter vos traductions existantes vers un flux de travail base sur po4a. Cette operation ne doit etre effectuee qu'une seule fois pour sauver une traduction existante lors de la conversion a po4a, et non de maniere reguliere apres la conversion de votre projet. Ce processus fastidieux est explique en detail dans la section << Conversion d'une traduction manuelle a po4a >> ci-dessous. Vous devez fournir a la fois un fichier d'origine (par exemple, la source en anglais) et un fichier traduit existant (par exemple, une tentative de traduction precedente sans po4a). Si vous fournissez plus d'un fichier d'origine ou de traduction, ils seront utilises en sequence, mais il peut etre plus facile de gettextiser chaque page ou chapitre separement, puis d'utiliser msgmerge pour fusionner tous les fichiers PO produits. Comme vous le souhaitez. Si le document d'origine contient des caracteres non ASCII, le nouveau fichier PO genere sera en UTF-8 (si ce n'est pas deja le cas). Si le document d'origine ne contient que des caracteres ASCII, le fichier PO genere utilisera l'encodage du document traduit donne en entree. OPTIONS -f, --format Type de format de la documentation que vous souhaitez traiter. Utilisez l'option --help-format pour afficher la liste des formats disponibles. -m, --master Fichier contenant le document d'origine a traduire. Vous pouvez utiliser cette option plusieurs fois si vous voulez gettextiser plusieurs documents. -M, --master-charset Jeu de caracteres du fichier contenant les documents a traduire. -l, --localized Fichier contenant le document traduit. Si vous fournissez plusieurs fichiers d'origine, vous voudrez surement fournir egalement plusieurs documents traduits en utilisant cette option plusieurs fois. -L, --localized-charset Jeu de caracteres du fichier contenant le document traduit. -p, --po Fichier ou le catalogue de messages sera ecrit. S'il n'est pas specifie, le catalogue de messages sera ecrit sur la sortie standard. -o, --option Passe une ou des options supplementaires au greffon de format. Referez-vous a la documentation de chaque greffon pour la liste des options valides et leurs significations. Par exemple, vous pourriez passer << -o tablecells >> a l'analyseur AsciiDoc, tandis que l'analyseur de texte accepterait << -o tabs=split >>. -h, --help Affiche un message d'aide. --help-format Enumere les formats de documentations connus de po4a. -k --keep-temps Conservez les fichiers POT d'origine et localises temporaires generes avant la fusion. Cela peut etre utile pour comprendre pourquoi ces fichiers sont desynchronises, conduisant a des problemes de gettextisation. -V, --version Affiche la version du script et quitte. -v, --verbose Rend le programme plus bavard. -d, --debug Affiche quelques informations de debogage. --msgid-bugs-address adresse@email Fixe l'adresse a laquelle les bogues des msgid doivent etre envoyes. Par defaut, les fichiers POT crees n'ont pas de champ Report-Msgid-Bugs-To. --copyright-holder chaine Fixe le detenteur du copyright dans l'en-tete du fichier POT. La valeur par defaut est << Free Software Foundation, Inc. >>. --package-name chaine Fixe le nom du paquet pour l'en-tete du fichier POT. La valeur par defaut est << PACKAGE >>. --package-version chaine Fixe la version du paquet pour l'en-tete du fichier POT. La valeur par defaut est << VERSION >>. Convertir une traduction manuelle vers po4a po4a-gettextize synchronise les fichiers d'origine et localise pour extraire leur contenu dans un fichier PO. Le contenu du fichier d'origine donne le msgid tandis que le contenu du fichier localise donne le msgstr. Ce processus est quelque peu fragile: la Nieme chaine du fichier traduit est censee etre la traduction de la Nieme chaine de l'original. La gettextisation fonctionne mieux si vous parvenez a recuperer la version exacte du document original utilisee pour la traduction. Meme dans ce cas, il se peut que vous deviez manipuler les fichiers d'origine et localise pour aligner leurs structures si elles ont ete desynchronisees par les equipes de traduction d'origine. Il est donc conseille de travailler sur des copies des fichiers. En interne, chaque analyseur po4a rapporte le type syntaxique de chaque chaine extraite. C'est ainsi que les desynchronisations sont detectees durant la transformation en gettext. Dans l'exemple illustre ci- dessous, il y a tres peu de chance pour que la quatrieme chaine de la traduction (de type << chapitre >>) soit la traduction de la quatrieme chaine du document original (de type << paragraphe >>). Il est plus probable qu'un nouveau paragraphe ait ete ajoute a l'original, ou que deux paragraphes originaux aient ete fusionnes en un seul dans la traduction. Original Traduction chapitre chapitre paragraphe paragraphe paragraphe paragraphe paragraphe chapitre chapitre paragraphe paragraphe paragraphe po4a-gettextize diagnostiquera de maniere verbeuse toute desynchronisation de structure. Lorsque cela se produit, vous devez manuellement modifier les fichiers pour ajouter de faux paragraphes ou supprimer du contenu ici et la jusqu'a ce que la structure des deux fichiers corresponde reellement. Quelques astuces sont donnees ci- dessous pour sauver le maximum de la traduction existante par ces moyens. Si vous avez assez de chance pour avoir une correspondance parfaite dans les structures de fichiers prete a l'emploi, generer un fichier PO correct est une affaire de secondes. Dans le cas contraire, vous comprendrez vite pourquoi ce processus porte un nom si affreux:) Malgre cela, la gettextisation reste souvent plus rapide que de tout retraduire. J'ai gettextise la traduction francaise de toute la documentation Perl en une journee malgre les nombreux problemes de synchronisation. Vu la quantite de texte (2 Mo de texte original), recommencer la traduction sans avoir au prealable recupere les anciennes traductions aurait necessite plusieurs mois de travail. De plus, ce travail fastidieux est le prix a payer pour beneficier du confort de po4a. Une fois converti, la synchronisation entre les documents d'origine et les traductions sera toujours entierement automatique. Apres une gettextisation reussie, les documents produits doivent etre verifies manuellement pour detecter les disparites non detectees et les erreurs silencieuses, comme explique ci-dessous. Trucs et astuces pour le processus de <> La gettextisation s'arrete des qu'une desynchronisation est detectee. Lorsque cela se produit, vous devez modifier les fichiers autant que necessaire pour realigner les structures des fichiers. po4a-gettextize est plutot verbeux lorsque les choses se passent mal. Il signale les chaines de caracteres qui ne correspondent pas, leur position dans le texte et le type de chacune d'entre elles. De plus, le fichier PO genere jusqu'a present est sauvegarde sous gettextization.failed.po pour une inspection plus approfondie. Voici quelques astuces pour vous aider dans ce processus fastidieux et vous assurer de recuperer le maximum de la traduction precedente : o Supprimez tout le contenu superflu des traductions, comme la section mentionnant les equipes de traduction. Ils doivent etre ajoutes separement en tant qu'addendas (voir po4a(7)). o Lorsque vous editez les fichiers pour aligner leurs structures, preferez si possible editer la traduction. En effet, si les modifications de l'original sont trop intrusives, l'ancienne et la nouvelle version ne seront pas appariees lors de la premiere execution de po4a apres la gettextisation (voir ci-dessous). Toute traduction non appariee sera de toute facon abandonnee. Ceci etant dit, vous pouvez toujours editer le document original s'il est trop difficile d'obtenir la gettextisation autrement, meme si cela signifie qu'un paragraphe de la traduction est abandonne. L'important est d'obtenir un premier fichier PO pour commencer. o N'hesitez pas a supprimer tout contenu original qui n'existe pas dans la version traduite. Ce contenu sera automatiquement reintroduit par la suite, lors de la synchronisation du fichier PO avec le document. o Vous devriez probablement informer l'auteur original de toute modification structurelle dans la traduction qui semble necessaire. Les problemes du document originel doivent etre signales a l'auteur. Faire la correction dans votre traduction n'en fait beneficier qu'une partie de la communaute. Et de plus, c'est impossible avec po4a ;) Mais vous voudrez probablement attendre la fin de la conversion vers po4a avant de modifier les fichiers originaux. o Parfois, le contenu des paragraphes correspond, mais pas leur type. Corriger cela depend du format. Pour les formats POD et man, cela provient souvent du fait qu'un des deux contient une ligne commencant par des espaces et pas l'autre. Pour ces formats, cela signifie que ce paragraphe ne doit pas etre reformate, il a donc un type different. Retirez simplement les espaces et vous serez tranquille. Il se peut aussi qu'il s'agisse d'une petite erreur dans le nom d'une balise en XML. De la meme facon, deux paragraphes peuvent avoir ete combines, dans le format POD, si la ligne qui les separe contient des espaces, ou s'il n'y a pas de ligne vide entre la ligne =item et le contenu de cet element. o Parfois, le message de desynchronisation semble etrange car la traduction est attachee au mauvais paragraphe source. C'est le signe d'un probleme non detecte en amont dans le processus. Cherchez le point de synchronisation reel en inspectant le fichier gettextization.failed.po genere, et corrigez le probleme la ou est vraiment. o D'autres problemes peuvent provenir de chaines de caracteres dupliquees, que ce soit dans l'original ou dans la traduction. Les chaines dupliquees sont fusionnees dans les fichiers PO, avec deux references. Cela constitue une difficulte pour l'algorithme de gettextisation, qui est un simple appariement un a un entre les msgids du fichier d'origine et du fichier localise. Cependant, les versions recentes de po4a devraient correctement traiter les chaines de caracteres dupliquees, et vous devriez donc signaler tout probleme restant que vous pourriez rencontrer. Examen des fichiers produits par po4a-gettextize Tout fichier produit par po4a-gettextize doit etre examine manuellement, meme lorsque le script se termine avec succes. Vous devez parcourir le fichier PO en vous assurant que les msgid et msgstr correspondent reellement. Il n'est pas encore necessaire de s'assurer que la traduction est parfaitement correcte, car toutes les entrees sont de toute facon marquees comme des traductions approximatives ("fuzzy"). Vous devez seulement verifier les problemes de correspondance evidents, car les traductions mal assorties seront abandonnees lors des etapes suivantes si vous voulez les sauver. Heureusement, cette etape ne necessite pas de maitriser les langues cibles puisque vous voulez seulement reconnaitre des elements similaires dans chaque msgid et son msgstr correspondant. Parlant moi-meme le francais, l'anglais et un peu l'allemand, je peux faire cela pour toutes les langues europeennes au moins, meme si je ne peux pas dire un mot de la plupart de ces langues. Je parviens parfois a detecter des problemes de correspondance dans les langues non latines en examinant la longueur des chaines de caracteres, les structures des phrases (la quantite de points d'interrogation correspond-elle ?) et d'autres indices, mais je prefere que quelqu'un d'autre examine ces langues. Si vous detectez une discordance, editez les fichiers d'origine et de traduction comme si po4a-gettextize avait signale une erreur, et reessayez. Une fois que vous avez un fichier PO decent pour votre traduction existante, sauvegardez-le jusqu'a ce que vous obteniez un fonctionnement correct de po4a. Executer po4a pour la premiere fois La maniere la plus simple de configurer po4a est d'ecrire un fichier de configuration po4a.conf, et d'utiliser le programme po4a unifie (po4a-updatepo et po4a-translate sont obsoletes). Consultez la section << FICHIER DE CONFIGURATION >> dans la documentation de po4a(1) pour en savoir plus. Lorsque po4a est execute pour la premiere fois, la version actuelle des documents d'origine sera utilisee pour mettre a jour les fichiers PO contenant les anciennes traductions que vous avez recuperees par gettextisation. Cela peut prendre beaucoup de temps, car beaucoup des msgids de la gettextisation ne correspondent pas exactement aux elements du fichier POT construit a partir des fichiers d'origine recents. Cela oblige gettext a rechercher le plus proche en utilisant un algorithme couteux de proximite des chaines de caracteres. Par exemple, le premier passage sur la traduction francaise de la documentation Perl (fichier PO de 5,5 Mo) a pris environ 48 heures (oui, deux jours) alors que les suivants ne prennent que quelques secondes. Mise en production de vos traductions Apres ce premier passage, les fichiers PO sont prets a etre revus par les equipes de traduction. Toutes les entrees ont ete marquees comme approximatives ("fuzzy") dans le fichier PO par po4a-gettextization, ce qui oblige a les relire attentivement avant de les utiliser. Les equipes de traduction doivent examiner chaque entree pour verifier que la traduction recuperee correspond bien au texte original actuel, actualiser la traduction si necessaire, et supprimer les marqueurs flous. Une fois que suffisamment de marqueurs flous sont supprimes, po4a commencera a generer les fichiers de traduction sur le disque, et vous serez pret a passer votre flux de traduction a la production. Certains projets trouvent utile de s'appuyer sur Weblate pour assurer la coordination entre les equipes de traduction et les responsables, mais cela depasse le cadre de po4a. VOIR AUSSI po4a-gettextize(1), po4a-normalize(1), po4a-translate(1), po4a-updatepo(1), po4a(7). AUTEURS Denis Barbier Nicolas Francois Martin Quinson (mquinson#debian.org) TRADUCTION Martin Quinson (mquinson#debian.org) COPYRIGHT ET LICENCE Copyright 2002-2023 SPI, inc. Ce programme est un logiciel libre ; vous pouvez le copier et / ou le modifier sous les termes de la GPL v2.0 ou suivante (voir le fichier COPYING). perl v5.38.2 2024-06-26 PO4A-GETTEXTIZE.1P(1)