Man page - po4a-gettextize(1)
Packages contains this manual
Available languages:
en fr pt_BR es it nl ja uk ru sr sr_Cyrl deManual
PO4A-GETTEXTIZE.1P
NOMSYNOPSIS
DESCRIPTION
OPTIONS
Convertir une traduction manuelle vers po4a
Examen des fichiers produits par po4a-gettextize
Exécuter po4a pour la premiÚre fois
Mise en production de vos traductions
VOIR AUSSI
AUTEURS
TRADUCTION
COPYRIGHT ET LICENCE
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 entrées)
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 caractĂ©ristique de po4a est quâil dĂ©couple la traduction du contenu de la structure du document. RĂ©fĂ©rez-vous Ă la page po4a (7) pour une introduction en douceur Ă ce projet.
Le script po4a-gettextize vous aide Ă porter vos traductions existantes vers un flux de travail basĂ© sur po4a. Cette opĂ©ration ne doit ĂȘtre effectuĂ©e quâune seule fois pour sauver une traduction existante lors de la conversion Ă po4a, et non de maniĂšre rĂ©guliĂšre aprĂšs la conversion de votre projet. Ce processus fastidieux est expliquĂ© en dĂ©tail dans la section « Conversion dâune traduction manuelle Ă po4a » ci-dessous.
Vous devez fournir Ă la fois un fichier dâorigine (par exemple, la source en anglais) et un fichier traduit existant (par exemple, une tentative de traduction prĂ©cĂ©dente sans po4a). Si vous fournissez plus dâun fichier dâorigine ou de traduction, ils seront utilisĂ©s en sĂ©quence, mais il peut ĂȘtre plus facile de gettextiser chaque page ou chapitre sĂ©parĂ©ment, puis dâutiliser msgmerge pour fusionner tous les fichiers PO produits. Comme vous le souhaitez.
Si le document dâorigine contient des caractĂšres non ASCII, le nouveau fichier PO gĂ©nĂ©rĂ© sera en UTF-8 (si ce nâest pas dĂ©jĂ le cas). Si le document dâorigine ne contient que des caractĂšres ASCII, le fichier PO gĂ©nĂ©rĂ© utilisera lâencodage du document traduit donnĂ© en entrĂ©e.
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 Ă traduire. Vous pouvez utiliser cette option plusieurs fois si vous voulez gettextiser plusieurs documents.
-M , --master-charset
Jeu de caractĂšres du fichier contenant les documents Ă traduire.
-l , --localized
Fichier contenant le document traduit. Si vous fournissez plusieurs fichiers dâorigine, vous voudrez sĂ»rement fournir Ă©galement plusieurs documents traduits en utilisant cette option plusieurs fois.
-L , --localized-charset
Jeu de caractĂšres du fichier contenant le document traduit.
-p , --po
Fichier oĂč le catalogue de messages sera Ă©crit. Sâil nâest pas spĂ©cifiĂ©, le catalogue de messages sera Ă©crit sur la sortie standard.
-o , --option
Passe une ou des options supplĂ©mentaires au greffon de format. RĂ©fĂ©rez-vous Ă la documentation de chaque greffon pour la liste des options valides et leurs significations. Par exemple, vous pourriez passer « -o tablecells » Ă lâanalyseur AsciiDoc, tandis que lâanalyseur de texte accepterait « -o tabs=split ».
-h , --help
Affiche un message dâaide.
--help-format
ĂnumĂšre les formats de documentations connus de po4a.
-k --keep-temps
Conservez les fichiers POT dâorigine et localisĂ©s temporaires gĂ©nĂ©rĂ©s avant la fusion. Cela peut ĂȘtre utile pour comprendre pourquoi ces fichiers sont dĂ©synchronisĂ©s, conduisant Ă des problĂšmes de gettextisation.
-V , --version
Affiche la version du script et quitte.
-v , --verbose
Rend le programme plus bavard.
-d , --debug
Affiche quelques informations de débogage.
--msgid-bugs-address adresse@email
Fixe lâadresse Ă laquelle les bogues des msgid doivent ĂȘtre envoyĂ©s. Par dĂ©faut, les fichiers POT créés nâont pas de champ Report-Msgid-Bugs-To.
--copyright-holder chaĂźne
Fixe le dĂ©tenteur du copyright dans lâen-tĂȘte du fichier POT. La valeur par dĂ©faut est « Free Software Foundation, Inc. ».
--package-name chaĂźne
Fixe le nom du paquet pour lâen-tĂȘte du fichier POT. La valeur par dĂ©faut est « PACKAGE ».
--package-version chaĂźne
Fixe la version du paquet pour lâen-tĂȘte du fichier POT. La valeur par dĂ©faut est « VERSION ».
Convertir une traduction manuelle vers po4a
po4a-gettextize synchronise les fichiers dâorigine et localisĂ© pour extraire leur contenu dans un fichier PO. Le contenu du fichier dâorigine donne le msgid tandis que le contenu du fichier localisĂ© donne le msgstr . Ce processus est quelque peu fragileâŻ: la NiĂšme chaĂźne du fichier traduit est censĂ©e ĂȘtre la traduction de la NiĂšme chaĂźne de lâoriginal.
La gettextisation fonctionne mieux si vous parvenez Ă rĂ©cupĂ©rer la version exacte du document original utilisĂ©e pour la traduction. MĂȘme dans ce cas, il se peut que vous deviez manipuler les fichiers dâorigine et localisĂ© pour aligner leurs structures si elles ont Ă©tĂ© dĂ©synchronisĂ©es par les Ă©quipes de traduction dâorigine. Il est donc conseillĂ© de travailler sur des copies des fichiers.
En interne, chaque analyseur po4a rapporte le type syntaxique de chaque chaĂźne extraite. Câest ainsi que les dĂ©synchronisations sont dĂ©tectĂ©es durant la transformation en gettext. Dans lâexemple illustrĂ© ci-dessous, il y a trĂšs peu de chance pour que la quatriĂšme chaĂźne de la traduction (de type « chapitre ») soit la traduction de la quatriĂšme chaĂźne du document original (de type « paragraphe »). Il est plus probable quâun nouveau paragraphe ait Ă©tĂ© ajoutĂ© Ă lâoriginal, ou que deux paragraphes originaux aient Ă©tĂ© fusionnĂ©s en un seul dans la traduction.
Original
Traduction
chapitre chapitre
paragraphe paragraphe
paragraphe paragraphe
paragraphe chapitre
chapitre paragraphe
paragraphe paragraphe
po4a-gettextize diagnostiquera de maniĂšre verbeuse toute dĂ©synchronisation de structure. Lorsque cela se produit, vous devez manuellement modifier les fichiers pour ajouter de faux paragraphes ou supprimer du contenu ici et lĂ jusquâĂ ce que la structure des deux fichiers corresponde rĂ©ellement. Quelques astuces sont donnĂ©es 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 prĂȘte Ă lâemploi, gĂ©nĂ©rer un fichier PO correct est une affaire de secondes. Dans le cas contraire, vous comprendrez vite pourquoi ce processus porte un nom si affreuxâŻ:) MalgrĂ© cela, la gettextisation reste souvent plus rapide que de tout retraduire. Jâai gettextisĂ© la traduction française de toute la documentation Perl en une journĂ©e malgrĂ© les nombreux problĂšmes de synchronisation. Vu la quantitĂ© de texte (2 Mo de texte original), recommencer la traduction sans avoir au prĂ©alable rĂ©cupĂ©rĂ© les anciennes traductions aurait nĂ©cessitĂ© plusieurs mois de travail. De plus, ce travail fastidieux est le prix Ă payer pour bĂ©nĂ©ficier du confort de po4a. Une fois converti, la synchronisation entre les documents dâorigine et les traductions sera toujours entiĂšrement automatique.
AprĂšs une gettextisation rĂ©ussie, les documents produits doivent ĂȘtre vĂ©rifiĂ©s manuellement pour dĂ©tecter les disparitĂ©s non dĂ©tectĂ©es et les erreurs silencieuses, comme expliquĂ© ci-dessous.
Trucs et astuces pour le processus de «gettextisation»
La gettextisation sâarrĂȘte dĂšs quâune dĂ©synchronisation est dĂ©tectĂ©e. Lorsque cela se produit, vous devez modifier les fichiers autant que nĂ©cessaire pour rĂ©aligner les structures des fichiers. po4a-gettextize est plutĂŽt verbeux lorsque les choses se passent mal. Il signale les chaĂźnes de caractĂšres qui ne correspondent pas, leur position dans le texte et le type de chacune dâentre elles. De plus, le fichier PO gĂ©nĂ©rĂ© jusquâĂ prĂ©sent est sauvegardĂ© sous gettextization.failed.po pour une inspection plus approfondie.
Voici quelques astuces pour vous aider dans ce processus fastidieux et vous assurer de récupérer le maximum de la traduction précédente :
|
âą |
Supprimez tout le contenu superflu des traductions, comme la section mentionnant les Ă©quipes de traduction. Ils doivent ĂȘtre ajoutĂ©s sĂ©parĂ©ment en tant quâaddendas (voir po4a (7)). |
||
|
âą |
Lorsque vous Ă©ditez les fichiers pour aligner leurs structures, prĂ©fĂ©rez si possible Ă©diter la traduction. En effet, si les modifications de lâoriginal sont trop intrusives, lâancienne et la nouvelle version ne seront pas appariĂ©es lors de la premiĂšre exĂ©cution de po4a aprĂšs la gettextisation (voir ci-dessous). Toute traduction non appariĂ©e sera de toute façon abandonnĂ©e. Ceci Ă©tant dit, vous pouvez toujours Ă©diter le document original sâil est trop difficile dâobtenir la gettextisation autrement, mĂȘme si cela signifie quâun paragraphe de la traduction est abandonnĂ©. Lâimportant est dâobtenir un premier fichier PO pour commencer. |
||
|
âą |
NâhĂ©sitez pas Ă supprimer tout contenu original qui nâexiste pas dans la version traduite. Ce contenu sera automatiquement rĂ©introduit par la suite, lors de la synchronisation du fichier PO avec le document. |
||
|
âą |
Vous devriez probablement informer lâauteur original de toute modification structurelle dans la traduction qui semble nĂ©cessaire. Les problĂšmes du document originel doivent ĂȘtre signalĂ©s Ă lâauteur. Faire la correction dans votre traduction nâen fait bĂ©nĂ©ficier quâune partie de la communautĂ©. 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. |
||
|
âą |
Parfois, le contenu des paragraphes correspond, mais pas leur type. Corriger cela dĂ©pend du format. Pour les formats POD et man, cela provient souvent du fait quâun des deux contient une ligne commençant par des espaces et pas lâautre. Pour ces formats, cela signifie que ce paragraphe ne doit pas ĂȘtre reformatĂ©, il a donc un type diffĂ©rent. 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 mĂȘme façon, deux paragraphes peuvent avoir Ă©tĂ© combinĂ©s, dans le format POD, si la ligne qui les sĂ©pare contient des espaces, ou sâil nây a pas de ligne vide entre la ligne =item et le contenu de cet Ă©lĂ©ment.
|
âą |
Parfois, le message de dĂ©synchronisation semble Ă©trange car la traduction est attachĂ©e au mauvais paragraphe source. Câest le signe dâun problĂšme non dĂ©tectĂ© en amont dans le processus. Cherchez le point de synchronisation rĂ©el en inspectant le fichier gettextization.failed.po gĂ©nĂ©rĂ©, et corrigez le problĂšme lĂ oĂč est vraiment. |
||
|
âą |
Dâautres problĂšmes peuvent provenir de chaĂźnes de caractĂšres dupliquĂ©es, que ce soit dans lâoriginal ou dans la traduction. Les chaĂźnes dupliquĂ©es sont fusionnĂ©es dans les fichiers PO, avec deux rĂ©fĂ©rences. Cela constitue une difficultĂ© pour lâalgorithme de gettextisation, qui est un simple appariement un Ă un entre les msgid s du fichier dâorigine et du fichier localisĂ©. Cependant, les versions rĂ©centes de po4a devraient correctement traiter les chaĂźnes de caractĂšres dupliquĂ©es, et vous devriez donc signaler tout problĂšme restant que vous pourriez rencontrer. |
Examen des fichiers produits par po4a-gettextize
Tout fichier produit par po4a-gettextize doit ĂȘtre examinĂ© manuellement, mĂȘme lorsque le script se termine avec succĂšs. Vous devez parcourir le fichier PO en vous assurant que les msgid et msgstr correspondent rĂ©ellement. Il nâest pas encore nĂ©cessaire de sâassurer que la traduction est parfaitement correcte, car toutes les entrĂ©es sont de toute façon marquĂ©es comme des traductions approximatives ("fuzzy"). Vous devez seulement vĂ©rifier les problĂšmes de correspondance Ă©vidents, car les traductions mal assorties seront abandonnĂ©es lors des Ă©tapes suivantes si vous voulez les sauver.
Heureusement, cette Ă©tape ne nĂ©cessite pas de maĂźtriser les langues cibles puisque vous voulez seulement reconnaĂźtre des Ă©lĂ©ments similaires dans chaque msgid et son msgstr correspondant. Parlant moi-mĂȘme le français, lâanglais et un peu lâallemand, je peux faire cela pour toutes les langues europĂ©ennes au moins, mĂȘme si je ne peux pas dire un mot de la plupart de ces langues. Je parviens parfois Ă dĂ©tecter des problĂšmes de correspondance dans les langues non latines en examinant la longueur des chaĂźnes de caractĂšres, les structures des phrases (la quantitĂ© de points dâinterrogation correspond-elle ?) et dâautres indices, mais je prĂ©fĂšre que quelquâun dâautre examine ces langues.
Si vous dĂ©tectez une discordance, Ă©ditez les fichiers dâorigine et de traduction comme si po4a-gettextize avait signalĂ© une erreur, et rĂ©essayez. Une fois que vous avez un fichier PO dĂ©cent pour votre traduction existante, sauvegardez-le jusquâĂ ce que vous obteniez un fonctionnement correct de po4a.
Exécuter po4a pour la premiÚre fois
La maniĂšre la plus simple de configurer po4a est dâĂ©crire un fichier de configuration po4a.conf , et dâutiliser le programme po4a unifiĂ© ( po4a-updatepo et po4a-translate sont obsolĂštes). Consultez la section « FICHIER DE CONFIGURATION » dans la documentation de po4a (1) pour en savoir plus.
Lorsque po4a est exĂ©cutĂ© pour la premiĂšre fois, la version actuelle des documents dâorigine sera utilisĂ©e pour mettre Ă jour les fichiers PO contenant les anciennes traductions que vous avez rĂ©cupĂ©rĂ©es par gettextisation. Cela peut prendre beaucoup de temps, car beaucoup des msgid s de la gettextisation ne correspondent pas exactement aux Ă©lĂ©ments du fichier POT construit Ă partir des fichiers dâorigine rĂ©cents. Cela oblige gettext Ă rechercher le plus proche en utilisant un algorithme coĂ»teux de proximitĂ© des chaĂźnes de caractĂšres. Par exemple, le premier passage sur la traduction française 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
AprĂšs ce premier passage, les fichiers PO sont prĂȘts Ă ĂȘtre revus par les Ă©quipes de traduction. Toutes les entrĂ©es ont Ă©tĂ© marquĂ©es comme approximatives ("fuzzy") dans le fichier PO par po4a-gettextization , ce qui oblige Ă les relire attentivement avant de les utiliser. Les Ă©quipes de traduction doivent examiner chaque entrĂ©e pour vĂ©rifier que la traduction rĂ©cupĂ©rĂ©e correspond bien au texte original actuel, actualiser la traduction si nĂ©cessaire, et supprimer les marqueurs flous.
Une fois que suffisamment de marqueurs flous sont supprimĂ©s, po4a commencera Ă gĂ©nĂ©rer les fichiers de traduction sur le disque, et vous serez prĂȘt Ă passer votre flux de traduction Ă la production. Certains projets trouvent utile de sâappuyer sur Weblate pour assurer la coordination entre les Ă©quipes de traduction et les responsables, mais cela dĂ©passe le cadre de po4a .
VOIR AUSSI
po4a-gettextize (1), po4a-normalize (1), po4a-translate (1), po4a-updatepo (1), po4a (7).
AUTEURS
Denis Barbier
<barbier@linuxfr.org>
Nicolas François
<nicolas.francois@centraliens.net>
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).