LOCALE::PO4A::SGML.3PM(1) User Contributed Perl Documentation NOM Locale::Po4a::Sgml - Convertir des documents SGML depuis ou vers des fichiers PO DESCRIPTION L'objectif du projet po4a [PO for anything -- PO pour tout] est de simplifier la traduction (et de facon plus interessante, la maintenance des traductions) en utilisant les outils gettext dans des domaines pour lesquels ils n'etaient pas destines, comme la documentation. Locale::Po4a::Sgml est un module qui permet d'aider la traduction de documentations au format SGML vers d'autres langues. Ce module utilise onsgmls(1) pour analyser les fichiers SGML. Assurez vous qu'il est bien installe et que la DTD des fichiers SGML est bien installee sur le systeme. OPTIONS ACCEPTEES PAR CE MODULE debug Liste de mots clefs separes par des espaces et indiquant quelles categories de messages de debogage supplementaire devraient etre affichees. Les valeurs possibles sont "entities", "generic", "onsgml", "refs" et "tag". verbose Donne plus d'informations sur ce qu'il se passe. translate Liste de balises supplementaires (en plus de celles fournies par la DTD) separees par des espaces dont le contenu doit former des msgid additionnels, c'est-a-dire pour etre traduites. section Liste de balises supplementaires (en plus de celles fournies par la DTD) pouvant contenir d'autres balises, qui peuvent etre a traduire (categorie translate). indent Space-separated list of tags which increase the indentation level. This will affect the indentation in the resulting document. verbatim Le formatage du texte contenu dans ces balises ne doit pas etre modifie. Aucun retour a la ligne n'est ajoute dans les paragraphes et aucune espace pour l'indentation ou nouvelle ligne n'est ajoutee pour des raisons cosmetiques. empty Balises n'ayant pas besoin d'etre fermees. ignore Tags ignored and considered as plain char data by po4a. That is to say that they can be part of an msgid. For example, is a good candidate for this category since putting it in the translate section would create a msgids with only its content, (and it's usually not a whole sentence), which is bad. attributes Une liste d'attributs de balises (separes par des espaces) que vous voulez traduire. Vous pouvez specifier les attributs par leur nom (par exemple, "lang"), mais vous pouvez aussi les faire preceder d'une hierarchie de balises pour indiquer que cet attribut ne sera traduit que quand il sera place a l'interieur 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-meme dans une balise "". Le nom des balises est en fait une expression rationnelle, ce qui vous permet de specifier "lang" si vous ne voulez traduire que les attributs "lang" qui se trouvent dans une balise "" ou "". qualify A space-separated list of attributes for which the translation must be qualified by the attribute name, i.e. the text extracted for the translation will include both the attributes name and it's value. e.g. for a tag like "" translators will be presented with the string "lang_en="foo"". Note that this also automatically adds the given attribute into the attributes list too. force Continue meme si la DTD est inconnue ou si onsgmls trouve des erreurs dans le document d'entree. include-all Par defaut, les msgid qui ne contiennent qu'une entite (comme << "&version;" >>) sont sautes pour le confort des equipes de traduction. Activer cette option arrete cette optimisation. Ceci peut etre utile si le document contient une construction telle que "Á", meme s'il est peu probable que cela arrive... ignore-inclusion Liste d'entites, separees par des espaces, qui ne seront pas inserees. Utilisez cette option avec precaution: elle peut forcer onsgmls (qui est utilise en interne) a ajouter des tags et rendre le document genere non valable. ETAT DE CE MODULE Le resultat est parfait. C'est-a-dire que les documents generes sont rigoureusement identiques aux originaux. Mais il reste encore quelques problemes: o Les messages d'erreur de onsgmls sont rediriges vers /dev/null par defaut, ce qui n'est pas bien, mais je ne sais pas comment eviter cela. Le probleme est que j'ai a << proteger >> les inclusions conditionnees (c'est a dire << "> et << "]]>" machin >>) de onsgmls. Sinon, onsgmls les elimine, et je ne sais pas les retablir dans le document final. Pour empecher cela, je les recris dans "{PO4A-beg-truc}" et "{PO4A-end}". Le probleme avec cela est que les "{PO4A-end}" et autres sont non valables dans le document (sauf dans une balise

ou autre). Si vous souhaitez afficher la sortie d'onsgmls, il suffit d'ajouter ce qui suit a votre ligne de commande (ou a la ligne de configuration po4a): -o debug=onsgmls o Cela ne marche qu'avec les DTD DebianDoc et DocBook. L'ajout de prise en charge d'une nouvelle DTD doit etre tres facile. Le mecanisme est le meme pour chaque DTD, vous n'avez qu'a donner la liste des balises existantes et certaines de leurs caracteristiques. Je comprend que cela necessiterait plus de documentation, mais c'est toujours considere comme a l'etat beta, et je deteste documenter ce qui risque de/va changer. o Attention, la prise en charge des DTD est plutot experimentale. Je n'ai lu aucun manuel de reference pour trouver la definition de toutes ces balises. J'ai ajoute des definitions de balises au module jusqu'a ce que ca marche pour certains documents trouves sur Internet. Si votre document utilise plus de balises que les miens, ca ne marchera pas. Mais, comme je l'ai dit plus haut, corriger cela doit etre assez facile. J'ai teste le format DocBook avec le SAG (System Administrator Guide -- Guide de l'Administrateur Systeme) uniquement, mais comme ce document est assez important, il doit utiliser la plupart des specificites de DocBook. Pour le format DebianDoc, je l'ai teste avec certains manuels du DDP, mais pas encore avec tous. o En cas d'inclusion d'un fichier, les references des messages du PO (c.-a-d., les lignes de la forme "#: en/titletoc.sgml:9460") seront erronees. Cela est du au fait que j'applique un pretraitement au fichier pour proteger les inclusions conditionnelles (utilisant << "> et << "]]>" machin >>) et quelques entites (comme "&version;") de onsgmls parce que je les veux telles quelles dans le document genere. Pour cela, je fais une copie temporaire du fichier d'entree et effectue toutes les modifications que je veux lui appliquer avant de le passer a onsgmls pour son analyse. Pour que ca fonctionne, je remplace les entites demandant l'inclusion d'un fichier par le contenu du fichier donne (comme cela je peux egalement proteger ce qui doit etre dans le sous-fichier). Mais rien n'est fait a present pour corriger les references (c.-a-d. les noms des fichiers et les numeros de ligne) par la suite. Je ne sais pas ce qui est preferable. AUTEURS Ce module est une adaptation de sgmlspl (postprocesseur SGML pour l'analyseur ONSGMLS), qui etait : Copyright (C) 1995 David Megginson L'adaptation de po4a a ete faite par : Denis Barbier Martin Quinson (mquinson#debian.org) TRADUCTION Martin Quinson (mquinson#debian.org) COPYRIGHT ET LICENCE Copyright (C) 1995 David Megginson . Copyright (C) 2002-2005 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.42.0 2025-11-22 LOCALE::PO4A::SGML.3PM(1)