.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" 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 "Locale::Po4a::Sgml 3pm" .TH Locale::Po4a::Sgml 3pm "2023-01-03" "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" Locale::Po4a::Sgml \- Convertir des documents \s-1SGML\s0 depuis ou vers des fichiers \s-1PO\s0 .SH "DESCRIPTION" .IX Header "DESCRIPTION" L’objectif du projet po4a [\s-1PO\s0 for anything — \s-1PO\s0 pour tout] est de simplifier la traduction (et de façon plus intéressante, la maintenance des traductions) en utilisant les outils gettext dans des domaines pour lesquels ils n’étaient pas destinés, comme la documentation. .PP Locale::Po4a::Sgml est un module qui permet d’aider la traduction de documentations au format \s-1SGML\s0 vers d’autres langues. .PP Ce module utilise \fBonsgmls\fR(1) pour analyser les fichiers \s-1SGML.\s0 Assurez vous qu’il est bien installé et que la \s-1DTD\s0 des fichiers \s-1SGML\s0 est bien installée sur le système. .SH "OPTIONS ACCEPTÉES PAR CE MODULE" .IX Header "OPTIONS ACCEPTÉES PAR CE MODULE" .IP "\fBdebug\fR" 4 .IX Item "debug" Liste de mots clefs séparés par des espaces et indiquant quelles parties vous voulez déboguer. Les valeurs possibles sont : tag, generic, entities et refs. .IP "\fBverbose\fR" 4 .IX Item "verbose" Donne plus d’informations sur ce qu’il se passe. .IP "\fBtranslate\fR" 4 .IX Item "translate" Liste de balises supplémentaires (en plus de celles fournies par la \s-1DTD\s0) séparées par des espaces dont le contenu doit former des msgid additionnels. .IP "\fBsection\fR" 4 .IX Item "section" Liste de balises supplémentaires (en plus de celles fournies par la \s-1DTD\s0) pouvant contenir d’autres balises, qui peuvent être à traduire (catégorie \fBtranslate\fR). .IP "\fBindent\fR" 4 .IX Item "indent" Liste de balises, séparées par des espaces, qui augmentent le niveau d’indentation. .IP "\fBverbatim\fR" 4 .IX Item "verbatim" Le formatage du texte contenu dans ces balises ne doit pas être modifié. Aucun retour à la ligne n’est ajouté dans les paragraphes et aucune espace pour l’indentation ou nouvelle ligne n’est ajoutée pour des raisons cosmétiques. .IP "\fBempty\fR" 4 .IX Item "empty" Balises n’ayant pas besoin d’être fermées. .IP "\fBignore\fR" 4 .IX Item "ignore" Les balises ignorées et considérées comme étant du texte brut par po4a. C’est\-à\-dire qu’elles peuvent faire partie d’un msgid. Par exemple, est un bon candidat pour cette catégorie puisqu’en les mettant dans la catégorie translate (à traduire), cela aurait eu pour conséquence que des msgid n’auraient pas été des phrases complètes, ce qui n’est pas bien. .IP "\fBattributes\fR" 4 .IX Item "attributes" Une liste d’attributs de balises (séparés par des espaces) que vous voulez traduire. Vous pouvez spécifier les attributs par leur nom (par exemple, « lang »), mais vous pouvez aussi les faire précéder d’une hiérarchie de balises pour indiquer que cet attribut ne sera traduit que quand il sera placé à l’intérieur d’une balise. Par exemple : lang indique que l’attribut lang ne sera traduit que s’il se trouve dans une balise , se trouvant elle\-même dans une balise . Le nom des balises est en fait une expression rationnelle, ce qui vous permet de spécifier lang si vous ne voulez traduire que les attributs lang qui se trouvent dans une balise ou . .IP "\fBqualify\fR" 4 .IX Item "qualify" Une liste d’attributs séparés par des espaces pour lesquels la traduction doit être qualifiée par le nom d’attribut. Notez que cette option ajoute aussi automatiquement l’attribut donné à la liste d’attributs. .IP "\fBforce\fR" 4 .IX Item "force" Continue même si la \s-1DTD\s0 est inconnue ou si onsgmls trouve des erreurs dans le document d’entrée. .IP "\fBinclude-all\fR" 4 .IX Item "include-all" Par défaut, les msgid qui ne contiennent qu’une entité (comme « &version; ») sont sautés pour le confort du traducteur. Activer cette option arrête cette optimisation. Ceci peut être utile si le document contient une construction telle que «  »,> même si je doute que ça puisse arriver... .IP "\fBignore-inclusion\fR" 4 .IX Item "ignore-inclusion" Liste d’entités, séparées par des espaces, qui ne seront pas insérées. Utilisez cette option avec précaution : elle peut forcer onsgmls (qui est utilisé en interne) à ajouter des tags et rendre le document généré non valable. .SH "ÉTAT DE CE MODULE" .IX Header "ÉTAT DE CE MODULE" Le résultat est parfait. C’est\-à\-dire que les documents générés sont rigoureusement identiques. Mais il y a encore quelques problèmes : .IP "\(bu" 2 Les messages d’erreur de onsgmls sont redirigés vers /dev/null par défaut, ce qui n’est pas bien, mais je ne sais pas comment éviter cela. .Sp Le problème est que j’ai à « protéger » les inclusions conditionnées (c’est à dire « \f(CW\*(C`\*(C'\fR machin ») de onsgmls. Sinon, onsgmls les élimine, et je ne sais pas les rétablir dans le document final. Pour empêcher cela, je les récris dans \f(CW\*(C`{PO4A\-beg\-truc}\*(C'\fR et \f(CW\*(C`{PO4A\-end}\*(C'\fR. .Sp Le problème avec cela est que les \f(CW\*(C`{PO4A\-end}\*(C'\fR et autres sont non valables dans le document (sauf dans une balise

ou autre). .Sp Si vous souhaitez afficher la sortie d’onsgmls, il suffit d’ajouter ce qui suit à votre ligne de commande (ou à la ligne de configuration po4a) : .Sp .Vb 1 \& \-o debug=onsgmls .Ve .IP "\(bu" 2 Cela ne marche qu’avec les \s-1DTD\s0 DebianDoc et DocBook. L’ajout de prise en charge d’une nouvelle \s-1DTD\s0 doit être très facile. Le mécanisme est le même pour chaque \s-1DTD,\s0 vous n’avez qu’à donner la liste des balises existantes et certaines de leurs caractéristiques. .Sp Je comprend que cela nécessiterait plus de documentation, mais c’est toujours considéré comme à l’état bêta, et je déteste documenter ce qui risque de/va changer. .IP "\(bu" 2 Attention, la prise en charge des \s-1DTD\s0 est plutôt expérimentale. Je n’ai lu aucun manuel de référence pour trouver la définition de toutes ces balises. J’ai ajouté des définitions de balises au module jusqu’à ce que ça marche pour certains documents trouvés sur Internet. Si votre document utilise plus de balises que les miens, ça ne marchera pas. Mais, comme je l’ai dit plus haut, corriger cela doit être assez facile. .Sp J’ai testé le format DocBook avec le \s-1SAG\s0 (System Administrator Guide \*(-- Guide de l’Administrateur Système) uniquement, mais comme ce document est assez important, il doit utiliser la plupart des spécificités de DocBook. .Sp Pour le format DebianDoc, je l’ai testé avec certains manuels du \s-1DDP,\s0 mais pas encore avec tous. .IP "\(bu" 2 En cas d’inclusion d’un fichier, les références des messages du \s-1PO\s0 (c.\-à\-d., les lignes de la forme \f(CW\*(C`#: en/titletoc.sgml:9460\*(C'\fR) seront erronées. .Sp Cela est dû au fait que j’applique un prétraitement au fichier pour protéger les inclusions conditionnelles (utilisant « \f(CW\*(C`\*(C'\fR machin ») et quelques entités (comme &version;) de onsgmls parce que je les veux telles quelles dans le document généré. Pour cela, je fais une copie temporaire du fichier d’entrée et effectue toutes les modifications que je veux lui appliquer avant de le passer à onsgmls pour son analyse. .Sp Pour que ça fonctionne, je remplace les entités demandant l’inclusion d’un fichier par le contenu du fichier donné (comme cela je peux également protéger ce qui doit être dans le sous-fichier). Mais rien n’est fait à présent pour corriger les références (c.\-à\-d. les noms des fichiers et les numéros de ligne) par la suite. Je ne sais pas ce qui est préférable. .SH "AUTEURS" .IX Header "AUTEURS" Ce module est une adaptation de sgmlspl (postprocesseur \s-1SGML\s0 pour l’analyseur \s-1ONSGMLS\s0), qui était : .PP .Vb 1 \& Copyright © 1995 David Megginson .Ve .PP L’adaptation de po4a a été faite par : .PP .Vb 2 \& Denis Barbier \& 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" .Vb 2 \& Copyright © 1995 David Megginson \& Copyright © 2002, 2003, 2004, 2005 SPI, Inc. .Ve .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).