.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.40) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "PO4A 1p" .TH PO4A 1p "2020-12-09" "Outils po4a" "Outils po4a" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NOM" .IX Header "NOM" po4a \- Mettre à jour à la fois les fichiers \s-1PO\s0 et les documents traduits .SH "SYNOPSIS" .IX Header "SYNOPSIS" \&\fBpo4a\fR [\fIoptions\fR] \fIfichier_de_configuration\fR .SH "DESCRIPTION" .IX Header "DESCRIPTION" po4a (\s-1PO\s0 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. Veuillez vous référer à la page \fBpo4a\fR\|(7) pour une introduction en douceur à ce projet. .PP Quand vous lancez le programme \fBpo4a\fR pour la première fois, avec seulement un fichier de configuration et des documents à traduire (appelés des documents maîtres), cela produit un fichier \s-1POT\s0 (aussi appelé un modèle de traduction) qui contient toutes les chaînes traduisibles dans le document sous une forme qui facilite le travail des traducteurs. .PP Ces fichiers \s-1POT\s0 peuvent être traduits via un éditeur dédié tel que le \&\fBl’éditeur de traduction de \s-1GNOME\s0\fR, \fBLokalize\fR de \s-1KDE\s0 ou \fBpoedit\fR, ou ils peuvent être intégrés dans une plateforme de traduction en ligne telle que \&\fBweblate\fR ou \fBpootle\fR. Le résultat des traductions est un ensemble de fichiers \s-1PO,\s0 un par langue. .PP Quand vous lancez le programme \fBpo4a\fR avec et document maître et les fichiers de traduction, il produit les documents traduits en injectant la traduction du contenu (trouvé dans les fichiers \s-1PO\s0) dans la structure du document maître original. .PP Si les documents maître ont été changés entre temps, po4a va mettre à jour les fichiers \s-1PO\s0 et \s-1POT\s0 en conséquence, de façon à ce que les traducteurs puissent facilement détecter les modifications et mettre à jour leur travail. Selon vos paramètres, po4a éliminera les documents partiellement traduits, ou produire un document mélangeant anglais (pour les paragraphes nouveaux ou modifiés) et la langue cible (pour les paragraphes où la traduction est déjà dans le fichier \s-1PO\s0). .PP Par défaut, les documents traduits sont produits quand au moins 80% de leur contenu est traduit (voir l'option \fI\-\-keep\fR ci-dessous). Il n'est pas recommandé de rejeter les traductions qui ne sont pas parfaitement traduites à 100% pour ne pas décourager les traducteurs, mais conserver des \&\*(L"traductions\*(R" trop partielles peut être troublant pour les utilisateurs. .SS "Résumé graphique" .IX Subsection "Résumé graphique" .Vb 11 \& document maître \-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-+ \& : | \& prog de : doc v \& filtrage =========X\-\-> maître | \& externe filtré +\-\-\-\-> traductions \& | ^ \& V | \& anciens fichiers PO \->\-\-\-+\-\-> fichiers PO à jour \& ^ | \& | V \& +<..........................+ .Ve .PP Les documents maîtres sont écrits par les rédacteurs de documentation. Tout changement est automatiquement reflété par po4a dans les fichiers \s-1PO,\s0 qui sont ensuite mis à jour par les traducteurs. Tous les changements sur les fichiers \s-1PO\s0 (manuels ou par po4a) sont automatiquement reflétés dans les documents traduits. Vous pouvez simuler ce comportement en utilisant les scripts \fBpo4a\-updatepo\fR\|(1) et \fBpo4a\-translate\fR\|(1) dans des makefiles, mais cela devient rapidement ennuyeux et répétitif (voir \fBpo4a\fR\|(7)). Il est fortement recommandé d’utiliser le programme \fBpo4a\fR dans votre processus de construction. .SH "OPTIONS" .IX Header "OPTIONS" .IP "\fB\-k\fR, \fB\-\-keep\fR" 4 .IX Item "-k, --keep" Seuil à dépasser afin que le fichier généré soit conservé et écrit sur disque (80 par défaut). C’est\-à\-dire que par défaut, les fichiers générés doivent être traduits à plus de 80% pour être écrits sur le disque. .IP "\fB\-h\fR, \fB\-\-help\fR" 4 .IX Item "-h, --help" Affiche un message d’aide. .IP "\fB\-M\fR, \fB\-\-master\-charset\fR" 4 .IX Item "-M, --master-charset" Jeu de caractères des fichiers contenant les documents à traduire. Notez que tous les fichiers maîtres doivent utiliser le même jeu de caractères. .IP "\fB\-L\fR, \fB\-\-localized\-charset\fR" 4 .IX Item "-L, --localized-charset" Jeu de caractères des fichiers contenant les documents traduits. Notez que tous les documents traduits doivent utiliser le même jeu de caractères. .IP "\fB\-A\fR, \fB\-\-addendum\-charset\fR" 4 .IX Item "-A, --addendum-charset" Jeu de caractères des addenda. Notez que tous les ajouts doivent partager le même jeu de caractères. .IP "\fB\-V\fR, \fB\-\-version\fR" 4 .IX Item "-V, --version" Affiche la version du script et quitte. .IP "\fB\-v\fR, \fB\-\-verbose\fR" 4 .IX Item "-v, --verbose" Rend le programme plus bavard. .IP "\fB\-q\fR, \fB\-\-quiet\fR" 4 .IX Item "-q, --quiet" Rend le programme moins bavard. .IP "\fB\-d\fR, \fB\-\-debug\fR" 4 .IX Item "-d, --debug" Affiche quelques informations de débogage. .IP "\fB\-o\fR, \fB\-\-option\fR" 4 .IX Item "-o, --option" Passe une ou des options supplémentaires au greffon de format. Veuillez vous référer à la documentation de chaque greffon pour la liste des options valides et leurs significations. Par exemple, vous pourriez passer « \-o tablecells » au parseur AsciiDoc, tandis que le parseur de texte accepterait « \-o tabs=split ». .IP "\fB\-f\fR, \fB\-\-force\fR" 4 .IX Item "-f, --force" Génère toujours les fichiers \s-1POT\s0 et \s-1PO,\s0 même si \fBpo4a\fR considère que ce n’est pas nécessaire. .Sp Le comportement par défaut (quand l’option \fB\-\-force\fR n’est pas utilisée) est le suivant : .RS 4 .Sp .RS 4 Si le fichier \s-1POT\s0 existe déjà, il est recréé si un document maître ou le fichier de configuration est plus récent (sauf si l'option \fB\-\-no\-update\fR est utilisée). De plus, le fichier \s-1POT\s0 est écrit dans un document temporaire, et \fBpo4a\fR vérifie que les modifications valent le coup. .Sp De plus, une traduction est mise à jour seulement si le document maître, le fichier \s-1PO,\s0 un de ses addenda ou le fichier de configuration est plus récent. Pour éviter de retenter de créer une traduction qui ne passe pas le test du seuil (voir l’option \fB\-\-keep\fR), un fichier avec une extension \&\fI.po4a\-stamp\fR peut être créé (voir l’option \fB\-\-stamp\fR). .RE .RE .RS 4 .Sp Si un document maître inclut d’autres fichiers, vous devriez utiliser l’option \fB\-\-force\fR parce que les dates de modification de ces fichiers ne sont pas prises en compte. .Sp Les fichiers \s-1PO\s0 sont toujours recréés en fonction du \s-1POT\s0 avec \fBmsgmerge \&\-U\fR. .RE .IP "\fB\-\-stamp\fR" 4 .IX Item "--stamp" Indique à \fBpo4a\fR de créer des fichiers d’horodatage quand une traduction n’a pas été générée parce qu’elle ne dépasse pas le seuil de traduction. Ces fichiers d’horodatage sont nommés en ajoutant l’extension \fI.po4a\-stamp\fR au nom du fichier à générer. .Sp Note : Cette option ne concerne que la création des fichiers \&\fI.po4a\-stamp\fR. Ces fichiers d’horodatage sont toujours utilisés s’ils existent et sont retirés quand l’option \fB\-\-rm\-translations\fR est utilisée ou quand le fichier est finalement traduit. .IP "\fB\-\-no\-translations\fR" 4 .IX Item "--no-translations" Ne génère pas les documents traduits, ne met à jour que les fichiers \s-1POT\s0 et \&\s-1PO.\s0 .IP "\fB\-\-no\-update\fR" 4 .IX Item "--no-update" Ne modifiez pas les fichiers \s-1POT\s0 et \s-1PO,\s0 seule la traduction peut être changée. .IP "\fB\-\-keep\-translations\fR" 4 .IX Item "--keep-translations" Garde les traductions existantes même si la traduction de satisfait pas le seuil spécifié par \fB\-\-keep\fR. Cette option ne va pas créer de fichiers peu traduits, mais elle préservera les fichiers existants dont la quantité de traduction décroît à cause de changements dans les fichiers maîtres. .Sp \&\s-1ATTENTION\s0 ! Cette option change profondément le comportement de po4a. Vos fichiers traduits ne seront plus modifiés jusqu'à ce que la traduction soit améliorée. N'utilisez cette option que si vous préférez distribuer une traduction obsolète bien traduite plutôt qu'une traduction à jour mais mal traduite. .IP "\fB\-\-rm\-translations\fR" 4 .IX Item "--rm-translations" Supprime les documents traduits (implique \fB\-\-no\-translations\fR). .IP "\fB\-\-no\-backups\fR" 4 .IX Item "--no-backups" Cette option ne fait rien depuis la version 0.41, et pourra être enlevée des prochaines versions. .IP "\fB\-\-rm\-backups\fR" 4 .IX Item "--rm-backups" Cette option ne fait rien depuis la version 0.41, et pourra être enlevée des prochaines versions. .IP "\fB\-\-translate\-only\fR \fIfichier-traduit\fR" 4 .IX Item "--translate-only fichier-traduit" Traduit uniquement le fichier indiqué. Il est parfois utile d’accélérer le processus si le fichier de configuration contient beaucoup de fichiers. Remarquez qu’avec cette option, les fichiers \s-1PO\s0 et \s-1POT\s0 ne seront pas mis à jour. Cette option peut être utilisée plusieurs fois. .IP "\fB\-\-variable\fR \fIvar\fR\fB=\fR\fIvaleur\fR" 4 .IX Item "--variable var=valeur" Définit une variable dont toutes les occurrences seront remplacées dans le fichier de configuration de \fBpo4a\fR. Les occurrences de \fI$(var)\fR seront remplacées par \fIvaleur\fR. Cette option peut être utilisée plusieurs fois. .IP "\fB\-\-srcdir\fR \fIRÉP_SRC\fR" 4 .IX Item "--srcdir RÉP_SRC" Définit le répertoire de base pour tous les documents d’entrée indiqués dans le fichier de configuration de \fBpo4a\fR. .Sp Si \fIdestdir\fR et \fIsrcdir\fR sont renseignés, les fichiers d’entrée sont cherchés dans les dossiers suivants et dans cet ordre : \fIdestdir\fR, le dossier courant et \fIsrcdir\fR. Les fichiers de sortie sont écrits dans \&\fIdestdir\fR si renseigné, sinon dans le dossier courant. .IP "\fB\-\-destdir\fR \fIRÉP_DEST\fR" 4 .IX Item "--destdir RÉP_DEST" Définit le répertoire de base pour tous les documents de sortie indiqués dans le fichier de configuration de \fBpo4a\fR (voir \fB\-\-srcdir\fR ci-dessus). .SS "Options modifiant l’en\-tête du \s-1POT\s0" .IX Subsection "Options modifiant l’en-tête du POT" .IP "\fB\-\-porefs\fR \fItype\fR" 4 .IX Item "--porefs type" Indique le format des références. L’argument \fItype\fR peut\-être \fBnever\fR pour ne pas produire de référence, \fBfile\fR pour n’indiquer que le fichier sans le numéro de ligne, \fBcounter\fR pour remplacer le numéro de ligne par un décompte croissant, et \fBfull\fR pour inclure des références complètes (par défaut, la valeur full est utilisée). .IP "\fB\-\-wrap\-po\fR \fBno\fR|\fBnewlines\fR|\fInombre\fR (par défaut : 76)" 4 .IX Item "--wrap-po no|newlines|nombre (par défaut : 76)" Détermine la façon de formater le fichier po. Cela donne le choix entre des fichiers joliment reformatés mais pouvant mener à des conflits git, ou des fichiers plus facile à prendre en main automatiquement, mais plus difficile à lire pour les humains. .Sp Historiquement, la suite gettext a formaté les fichiers po à la 77e colonne pour des raisons cosmétiques. Cette option indique le comportement de po4a. Si défini en tant qu’entier, po4a va restreindre la largeur du fichier après cette colonne et après les nouvelles lignes de contenu. Si défini à \&\fBnewlines\fR, po4a ne séparera les msgit et msgstr qu’après les nouvelles lignes dans le contenu. Si défini à \fBno\fR, po4a ne restreindra pas du tout le fichier. Les commentaires de référence sont toujours limités par les outils gettext que nous utilisons en interne. .Sp Veuillez noter que cette option n’a pas d’impact sur la façon dont les msgid et msgstr sont restreints, par exemple sur la façon dont les nouvelles lignes sont ajoutées au contenu de ces chaînes. .IP "\fB\-\-master\-language\fR" 4 .IX Item "--master-language" Langue des fichiers source contenant les documents à traduire. Notez que tous les fichiers maîtres doivent partager la même langue. .IP "\fB\-\-msgid\-bugs\-address\fR \fBadresse@email\fR" 4 .IX Item "--msgid-bugs-address adresse@email" Fixe l’adresse à laquelle les bogues des msgid doivent être envoyés. Par défaut, les fichiers \s-1POT\s0 créés n’ont pas de champ Report-Msgid-Bugs-To. .IP "\fB\-\-copyright\-holder\fR \fIchaîne\fR" 4 .IX Item "--copyright-holder chaîne" Fixe le détenteur du copyright dans l’en\-tête du fichier \s-1POT.\s0 La valeur par défaut est « Free Software Foundation, Inc. ». .IP "\fB\-\-package\-name\fR \fIchaîne\fR" 4 .IX Item "--package-name chaîne" Fixe le nom du paquet pour l’en\-tête du fichier \s-1POT.\s0 La valeur par défaut est « \s-1PACKAGE\s0 ». .IP "\fB\-\-package\-version\fR \fIchaîne\fR" 4 .IX Item "--package-version chaîne" Fixe la version du paquet pour l’en\-tête du fichier \s-1POT.\s0 La valeur par défaut est « \s-1VERSION\s0 ». .SS "Options de modification des fichiers \s-1PO\s0" .IX Subsection "Options de modification des fichiers PO" .IP "\fB\-\-msgmerge\-opt\fR \fIoptions\fR" 4 .IX Item "--msgmerge-opt options" Options additionnelles pour \fBmsgmerge\fR(1). .Sp Note : \fB\f(CB$lang\fB\fR sera remplacé par la langue en cours. .IP "\fB\-\-no\-previous\fR" 4 .IX Item "--no-previous" Cette option supprime \fB\-\-previous\fR des options passées à \fBmsgmerge\fR. Elle permet de prendre en charge les versions de \fBgettext\fR antérieures à 0.16. .IP "\fB\-\-previous\fR" 4 .IX Item "--previous" Cette option ajoute \fB\-\-previous\fR aux options passées à \fBmsgmerge\fR. Elle nécessite une version 0.16 ou ultérieure de \fBgettext\fR et est activée par défaut. .SH "FICHIER DE CONFIGURATION" .IX Header "FICHIER DE CONFIGURATION" po4a attend un fichier de configuration en paramètre. Ce fichier doit contenir les éléments suivants : .IP "\(bu" 4 Le chemin vers les fichiers \s-1PO\s0 et la liste ds langues existantes dans le projet ; .IP "\(bu" 4 En option, quelques options globales et ce qu’on appelle des alias de configuration utilisés en tant que modèles pour configurer des fichiers maîtres individuels ; .IP "\(bu" 4 La liste de chaque fichier maître à traduire, avec les paramètres spécifiques. .PP Toutes les lignes contiennent une commande entre crochets, suivie de ses paramètres. Les commentaires commencent par le caractère «#» et vont jusqu'à la fin de la ligne. Vous pouvez échapper la fin de la ligne (avec \e) pour étaler une commande sur plusieurs lignes. .PP Quelques exemples complets sont présentés sur cette page, tandis que d'autres exemples peuvent être trouvés dans le répertoire \f(CW\*(C`t/cfg\*(C'\fR de la distribution source. .SS "Trouver les fichiers \s-1PO\s0 et \s-1POT\s0" .IX Subsection "Trouver les fichiers PO et POT" La solution la plus simple est de donner explicitement le chemin des fichiers \s-1POT\s0 et \s-1PO,\s0 comme ceci : .PP .Vb 1 \& [po4a_paths] man/po/project.pot de:man/po/de.po fr:man/po/fr.po .Ve .PP Cela spécifie d'abord le chemin d'accès au fichier \s-1POT,\s0 puis les chemins d'accès aux fichiers \s-1PO\s0 allemand et français. .PP La même information peut être écrite comme suit pour réduire le risque d'erreurs de copier/coller : .PP .Vb 2 \& [po4a_langs] fr de \& [po4a_paths] man/po/project.pot $lang:man/po/$lang.po .Ve .PP L'élément \f(CW$lang\fR est automatiquement développé à l'aide de la liste de langues fournie, ce qui réduit le risque d'erreur de copier/coller lorsqu'une nouvelle langue est ajoutée. .PP Vous pouvez en outre compacter les mêmes informations en fournissant uniquement le chemin d'accès au répertoire contenant votre projet de traduction, comme suit. .PP .Vb 1 \& [po_directory] man/po/ .Ve .PP Le répertoire fourni doit contenir un ensemble de fichiers \s-1PO,\s0 nommés \&\fI\s-1XX\s0.po\fR, \f(CW\*(C`XX\*(C'\fR étant le code \s-1ISO 639\-1\s0 de la langue utilisée dans ce fichier. Le répertoire doit également contenir un seul fichier \s-1POT,\s0 avec l'extension de fichier \f(CW\*(C`.pot\*(C'\fR. Pour la première exécution, ce fichier peut être vide mais il doit exister (po4a ne peut pas deviner le nom à utiliser avant l'extension). .PP Notez bien que vous devez choisir entre \f(CW\*(C`po_directory\*(C'\fR et \f(CW\*(C`po4a_paths\*(C'\fR. Le premier (\f(CW\*(C`po_directory\*(C'\fR) est plus compact, réduit le risque d'erreur de copier/coller, mais vous oblige à utiliser la structure de projet et les noms de fichiers attendus. Le second (\f(CW\*(C`po4a_paths\*(C'\fR), est plus explicite, probablement plus lisible, et conseillé lorsque vous configurez votre premier projet avec po4a. .PP \fIFichier \s-1PO\s0 unique ou fractionné ?\fR .IX Subsection "Fichier PO unique ou fractionné ?" .PP Par défaut, po4a produit un seul fichier \s-1PO\s0 par langue cible, contenant tout le contenu de votre projet de traduction. À mesure que votre projet se développe, la taille de ces fichiers peut devenir problématique. Lors de l'utilisation de weblate, il est possible de spécifier des priorités pour chaque segment de traduction (c'est\-à\-dire, msgid) afin que les plus importants soient traduits en premier. Toutefois, certaines équipes de traduction préfèrent diviser le contenu en plusieurs fichiers. .PP Pour avoir un fichier \s-1PO\s0 par fichier maître, il vous suffit d'utiliser la chaîne \f(CW$master\fR dans le nom de vos fichiers \s-1PO\s0 sur la ligne \&\f(CW\*(C`[po4a_paths]\*(C'\fR, comme suit. .PP .Vb 1 \& [po4a_paths] doc/$master/$master.pot $lang:doc/$master/$lang.po .Ve .PP Si des noms sont en conflit parce que plusieurs fichiers ont le même nom, le nom du fichier maître peut être indiqué en ajoutant une option \&\f(CW\*(C`master:file=\*(C'\fR\fInom\fR : .PP .Vb 4 \& [po4a_langs] de fr ja \& [po4a_paths] l10n/po/$master.pot $lang:l10n/po/$master.$lang.po \& [type: xml] truc/interface.xml $lang:foo/gui.$lang.xml master:file=truc\-interface \& [type: xml] bidule/interface.xml $lang:bar/gui.$lang.xml master:file=bidule\-interface .Ve .PP En mode réparti, \fBpo4a\fR construit un compendium temporaire pendant la mise à jour des \s-1PO\s0 afin de partager les traductions entre l’ensemble des fichiers \&\s-1PO.\s0 Si deux fichiers \s-1PO\s0 ont des traductions différentes pour la même chaîne, \&\fBpo4a\fR marquera ces deux chaînes comme étant approximatives (\fIfuzzy\fR) et ajoutera les deux traductions dans tous les fichiers \s-1PO\s0 contenant cette chaîne. Une fois corrigée par le traducteur, la traduction sera automatiquement utilisée dans tous les fichiers \s-1PO.\s0 .SS "Spécification des documents à traduire" .IX Subsection "Spécification des documents à traduire" Vous devez également lister les documents à traduire. Pour chaque fichier maître, vous devez spécifier l'analyseur de format à utiliser, l'emplacement du document traduit et éventuellement une configuration. Voici un exemple : .PP .Vb 5 \& [type: sgml] doc/my_stuff.sgml fr:doc/fr/mon_truc.sgml \e \& de:doc/de/mein_kram.sgml \& [type: man] script fr:doc/fr/script.1 de:doc/de/script.1 \& [type: docbook] doc/script.xml fr:doc/fr/script.xml \e \& de:doc/de/script.xml .Ve .PP Mais là aussi, ces lignes complexes sont difficiles à lire et à modifier, par ex. lors de l'ajout d'une nouvelle langue. Il est beaucoup plus simple de réorganiser les choses en utilisant le modèle \f(CW$lang\fR comme ceci : .PP .Vb 3 \& [type: sgml] doc/mon_truc.sgml $lang:doc/$lang/mon_truc.sgml \& [type: man] script.1 $lang:po/$lang/script.1 \& [type: docbook] doc/script.xml $lang:doc/$lang/script.xml .Ve .SS "Renseigner les options" .IX Subsection "Renseigner les options" Il y a deux types d'options : les \fIoptions po4a\fR sont les valeurs par défaut des options de ligne de commande po4a tandis que les \fIoptions de format\fR sont utilisées pour changer le comportement des analyseurs de format. En tant qu' \fIoptions po4a\fR, vous pouvez par exemple spécifier dans votre fichier de configuration que la valeur par défaut du paramètre de ligne de commande \fB\-\-keep\fR est 50% au lieu de 80%. Les sont documentées sur la page spécifique de chaque module d'analyse, par ex. \fBLocale::Po4a::Xml\fR\|(3pm). Vous pouvez par exemple passer \fBnostrip\fR à l'analyseur \s-1XML\s0 pour ne pas supprimer les espaces autour des chaînes extraites. .PP Vous pouvez transmettre ces options pour un fichier maître spécifique, ou même pour une traduction spécifique de ce fichier, en utilisant \f(CW\*(C`opt:\*(C'\fR et \&\f(CW\*(C`opt_XX:\*(C'\fR pour la langue \f(CW\*(C`XX\*(C'\fR. Dans l'exemple suivant, l'option \fBnostrip\fR est passée à l'analyseur \s-1XML\s0 (pour toutes les langues), tandis que le seuil sera réduit à 0% pour la traduction française (qui est donc toujours conservée). .PP .Vb 1 \& [type:xml] toto.xml $lang:toto.$lang.xml opt:"\-o nostrip" opt_fr:"\-\-keep 0" .Ve .PP Dans tous les cas, ces blocs de configuration doivent être situés à la fin de la ligne. La déclaration des fichiers doit venir en premier, puis l'addendum le cas échéant (voir plus loin), et ensuite seulement les options. Le regroupement des blocs de configuration n'est pas très important, car les éléments sont concaténés en interne sous forme de chaînes. Les exemples suivants sont tous équivalents : .PP .Vb 3 \& [type:xml] toto.xml $lang:toto.$lang.xml opt:"\-\-keep 20" opt:"\-o nostrip" opt_fr:"\-\-keep 0" \& [type:xml] toto.xml $lang:toto.$lang.xml opt:"\-\-keep 20 \-o nostrip" opt_fr:"\-\-keep 0" \& [type:xml] toto.xml $lang:toto.$lang.xml opt:\-\-keep opt:20 opt:\-o opt:nostrip opt_fr:\-\-keep opt_fr:0 .Ve .PP Notez que les options spécifiques à la langue ne sont pas utilisées lors de la création du fichier \s-1POT.\s0 Il est par exemple impossible de passer \&\fBnostrip\fR à l'analyseur uniquement lors de la construction de la traduction française, car le même fichier \s-1POT\s0 est utilisé pour mettre à jour toutes les langues. Ainsi, les seules options qui peuvent être spécifiques à la langue sont celles qui sont utilisées lors de la production de la traduction, comme l'option \f(CW\*(C`\-\-keep\*(C'\fR. .PP \fIConfiguration des alias\fR .IX Subsection "Configuration des alias" .PP Pour transmettre les mêmes options à plusieurs fichiers, le mieux est de définir un alias de type comme suit. Dans l'exemple suivant, \f(CW\*(C`\-\-keep 0\*(C'\fR est passé à chaque traduction italienne en utilisant ce type \f(CW\*(C`test\*(C'\fR, qui est une extension du type \f(CW\*(C`man\*(C'\fR. .PP .Vb 2 \& [po4a_alias:test] man opt_it:"\-\-keep 0" \& [type: test] man/page.1 $lang:man/$lang/page.1 .Ve .PP Vous pouvez également étendre un type existant en réutilisant le même nom pour l'alias comme suit. Cela n’est pas interprété en tant que définition récursive erronée. .PP .Vb 2 \& [po4a_alias:man] man opt_it:"\-\-keep 0" \& [type: man] man/page.1 $lang:man/$lang/page.1 .Ve .PP \fIOptions globales par défaut\fR .IX Subsection "Options globales par défaut" .PP Vous pouvez également utiliser les lignes d’\f(CW\*(C`[options]\*(C'\fR pour définir des options devant être utilisées pour tous les fichiers, indépendamment de leur type. .PP .Vb 1 \& [options] \-\-keep 20 \-\-option nostrip .Ve .PP Comme pour les options en ligne de commande, vous pouvez abbréger les paramètres passés dans le fichier de configuration : .PP .Vb 1 \& [options] \-k 20 \-o nostrip .Ve .PP \fIPriorités des options\fR .IX Subsection "Priorités des options" .PP Les options de toutes les sources sont concaténées, assurant que les valeurs par défaut puissent facilement être remplacées par des options plus spécifiques. L’ordre est le suivant : .IP "\(bu" 4 Les lignes \f(CW\*(C`[options]\*(C'\fR fournissent les valeurs par défaut pouvant être remplacées par n’importe quel autre source. .IP "\(bu" 4 Puis les alias de types sont utilisés. Les paramètres spécifiques de langue remplacent ceux applicables à toutes les langues. .IP "\(bu" 4 Les paramètres étant spécifiques à un fichier master remplacement celles par défaut et celles venant du type alias. Dans ce cas également, les paramètres spécifiques de langue remplacent les globaux. .IP "\(bu" 4 Enfin, les paramètres fournis via la ligne de commande \fBpo4a\fR remplacement tout paramètre du fichier de configuration. .PP \fIExemple\fR .IX Subsection "Exemple" .PP Voici un exemple montrant comment renseigner les espaces et apostrophes : .PP .Vb 1 \& [po_directory] man/po/ \& \& [options] \-\-master\-charset UTF\-8 \& \& [po4a_alias:man] man opt:"\-o \e"mdoc=NAME,SEE ALSO\e"" \& [type:man] t\-05\-config/test02_man.1 $lang:tmp/test02_man.$lang.1 \e \& opt:"\-k 75" opt_it:"\-L UTF\-8" opt_fr:\-\-verbose .Ve .SS "Addendum : Ajouter des contenus dans la traduction" .IX Subsection "Addendum : Ajouter des contenus dans la traduction" Si vous souhaitez ajouter une section supplémentaire à la traduction, par exemple pour donner du crédit au traducteur, vous devez définir un addendum à la ligne définissant votre fichier maître. Veuillez vous référer à la page \&\fBpo4a\fR\|(7) pour plus de détails sur la syntaxe des fichiers addendum. .PP .Vb 2 \& [type: pod] script fr:doc/fr/script.1 \e \& add_fr:doc/l10n/script.fr.add .Ve .PP Vous pouvez également utiliser des modèles de langue comme suit : .PP .Vb 2 \& [type: pod] script $lang:doc/$lang/script.1 \e \& add_$lang:doc/l10n/script.$lang.add .Ve .PP Si l'application d'un addendum échoue, la traduction est rejetée. .PP \fIModificateurs pour la déclaration d'un addendum\fR .IX Subsection "Modificateurs pour la déclaration d'un addendum" .PP Les modificateurs d'addendum peuvent simplifier le fichier de configuration dans le cas où toutes les langues ne fournissent pas d'addendum, ou lorsque la liste des addenda change d'une langue à l'autre. Le modificateur est un seul caractère situé avant le nom du fichier. .IP "\fB?\fR" 2 .IX Item "?" Inclure l’\fIaddendum\fR si le fichier existe, rien sinon. .IP "\fB@\fR" 2 .IX Item "@" \&\fIaddendum\fR n’est pas un fichier addendum normal mais un fichier contenant une liste d’addenda, un par ligne. Chaque addendum peut être précédé de modificateurs. .IP "\fB!\fR" 2 .IX Item "!" \&\fIaddendum\fR n’est pas pris en compte, il n’est pas chargé et ne le sera pas lors de toute autre indication d’addendum. .PP Ce qui suit inclut un addendum dans n'importe quelle langue, mais seulement s'il existe. Aucune erreur n'est signalée si l'addendum n'existe pas. .PP .Vb 1 \& [type: pod] script $lang:doc/$lang/script.1 add_$lang:?doc/l10n/script.$lang.add .Ve .PP Ce qui suit inclut un addendum pour chaque langue : .PP .Vb 1 \& [type: pod] script $lang:doc/$lang/script.1 add_$lang:@doc/l10n/script.$lang.add .Ve .SS "Filtrer les chaînes traduites" .IX Subsection "Filtrer les chaînes traduites" Parfois, vous souhaitez masquer certaines chaînes au processus de traduction. Pour cela, vous pouvez donner un paramètre \f(CW\*(C`pot_in\*(C'\fR à votre fichier maître pour spécifier le nom du fichier à utiliser à la place du vrai maître lors de la construction du fichier \s-1POT.\s0 Voici un exemple : .PP .Vb 3 \& [type:docbook] book.xml \e \& pot_in:book\-filtered.xml \e \& $lang:book.$lang.xml .Ve .PP Avec ce paramètre, les chaînes à traduire seront extraites du \&\fIbook\-filtered.xml\fR (qui doit être créé avant d'appeler \fBpo4a\fR) tandis que les fichiers traduits seront construits à partir de \fIbook.xml\fR. Par conséquent, toute chaîne qui fait partie de \fIbook.xml\fR mais pas de \&\fIbook\-filtered.xml\fR ne sera pas incluse dans les fichiers \s-1PO,\s0 empêchant les traducteurs de fournir une traduction pour eux. Ainsi, ces chaînes ne seront pas modifiées lors de la production des documents traduits. Cela diminue naturellement le niveau de traduction, vous pouvez donc avoir besoin de l'option \f(CW\*(C`\-\-keep\*(C'\fR pour vous assurer que le document est produit dans tous les cas. .SS "\s-1EXEMPLE DE CONFIGURATION\s0" .IX Subsection "EXEMPLE DE CONFIGURATION" À \s-1VOIR :\s0 Cette section est-elle vraiment utile ? .PP Considérons que vous soyez responsable d’un programme \fBtruc\fR avec sa page de manuel \fIman/truc.1\fR naturellement maintenue seulement en anglais. Maintenant, en tant que développeur amont ou responsable aval, vous désirez créer et maintenir la traduction. Vous devez d’abord créer le fichier \s-1POT\s0 nécessaire à envoyer au traducteur avec \fBpo4a\-gettextize\fR\|(1). .PP Ainsi dans notre cas, nous ferons .PP .Vb 1 \& cd man && po4a\-gettextize \-f man \-m truc.1 \-p truc.pot .Ve .PP Vous pourrez alors envoyer ce fichier aux listes de traductions adéquates ou le rendre disponible au téléchargement quelque part. .PP Considérons maintenant que vous receviez trois traductions avant la prochaine publication : \fIde.po\fR (avec un addendum \fIde.add\fR), \fIsv.po\fR et \&\fIpt.po\fR. Puisque vous n’avez pas l’intention de modifier le ou les fichiers \fIMakefile\fR à chaque nouvelle traduction reçue, vous pouvez utiliser \fBpo4a\fR avec le fichier de configuration adéquat dans chaque \&\fIMakefile\fR. Ce fichier de configuration peut s’appeler \fIpo4a.cfg\fR, dans cet exemple, il ressemblerait à : .PP .Vb 1 \& [po_directory] man/po4a/po/ \& \& [type: man] man/foo.1 $lang:man/translated/$lang/foo.1 \e \& add_$lang:?man/po4a/add_$lang/$lang.add opt:"\-k 80" .Ve .PP Dans cet exemple, nous considérons que les pages de manuel créées (ainsi que tous les fichiers \s-1PO\s0 et addenda) devraient être gardés dans \&\fIman/translated/$lang/\fR (respectivement dans \fIman/po4a/po/\fR et \&\fIman/po4a/add_$lang/\fR) à l’intérieur du répertoire en cours. Ici le répertoire \fIman/po4a/po/\fR contiendrait \fIde.po\fR, \fIpt.po\fR et \fIsv.po\fR et le répertoire \fIman/po4a/add_de/\fR contiendrait \fIde.add\fR. .PP Remarquez l’utilisation du modificateur \fB?\fR car seule la traduction allemande (\fIde.po\fR) est accompagnée d’un addendum. .PP Pour vraiment construire les pages de manuel traduites, vous devrez alors (une seule fois) ajouter la ligne suivante dans la cible \fBbuild\fR du \&\fIMakefile\fR adéquat : .PP .Vb 1 \& po4a po4a.cfg .Ve .PP Une fois configuré, il ne sera plus nécessaire de modifier le \fIMakefile\fR à chaque nouvelle traduction reçue. Si par exemple l’équipe de traduction française vous envoie \fIfr.po\fR et \fIfr.add\fR, il suffit de les déposer respectivement dans \fIman/po4a/po/\fR et \fIman/po4a/add_fr/\fR et la prochaine fois que le programme sera construit, la traduction française sera aussi automatiquement construite dans \fIman/translated/fr/\fR. .PP Notez que vous avez toujours besoin d’une cible adéquate pour installer les pages de manuel traduites en plus de celles en anglais. .PP Enfin, si vous ne voulez pas garder les fichiers créés dans le système de gestion de version, vous devriez aussi ajouter cette ligne à la cible \fBclean\fR : \-rm \-rf man/translated .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fBpo4a\-gettextize\fR\|(1), \fBpo4a\-normalize\fR\|(1), \fBpo4a\-translate\fR\|(1), \&\fBpo4a\-updatepo\fR\|(1), \fBpo4a\fR\|(7). .SH "AUTEURS" .IX Header "AUTEURS" .Vb 3 \& Denis Barbier \& Nicolas François \& Martin Quinson (mquinson#debian.org) .Ve .SH "TRADUCTION" .IX Header "TRADUCTION" .Vb 1 \& Martin Quinson (mquinson#debian.org) .Ve .SH "COPYRIGHT ET LICENCE" .IX Header "COPYRIGHT ET LICENCE" Copyright 2002\-2020 by \s-1SPI,\s0 inc. .PP Ce programme est un logiciel libre ; vous pouvez le copier et / ou le modifier sous les termes de la \s-1GPL\s0 (voir le fichier \s-1COPYING\s0).