.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" 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::Xml 3pm" .TH Locale::Po4a::Xml 3pm "2018-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" Locale::Po4a::Xml \- Convertir les documents \s-1XML\s0 (ou dérivés) 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::Xml est un module qui permet d’aider à traduire des documents \&\s-1XML\s0 dans d’autres langues. Il peut aussi servir de base pour créer d’autres modules pour des documents basés sur le format \s-1XML.\s0 .SH "TRADUCTION AVEC PO4A::XML" .IX Header "TRADUCTION AVEC PO4A::XML" Ce module peut être utilisé directement pour traiter des documents dans un format générique \s-1XML.\s0 Le contenu des balises sera extrait, mais pas celui des attributs, parce que c’est ainsi que sont écrits la plupart des documents basés sur \s-1XML.\s0 .PP Il y a quelques options (décrites dans la section suivante) qui peuvent permettre de paramétrer ce comportement. Si ça ne correspond pas au format de votre document, vous êtes encouragé à écrire votre propre module dérivé de celui-ci, pour décrire en détails votre format. Consultez la section \&\fBÉCRITURE \s-1DE MODULES\s0 DÉRIVÉS\fR plus bas, pour un descriptif de la procédure. .SH "OPTIONS ACCEPTÉES PAR CE MODULE" .IX Header "OPTIONS ACCEPTÉES PAR CE MODULE" L’option globale de débogage permet d’indiquer à ce module d’afficher les chaînes exclues, de façon à voir s’il saute quelque chose d’important. .PP Voici les options particulières à ce module : .IP "\fBnostrip\fR" 4 .IX Item "nostrip" Évite que les espaces autour de la chaîne extraite ne soient éliminées. .IP "\fBwrap\fR" 4 .IX Item "wrap" Canonicalizes the string to translate, considering that whitespaces are not important, and wraps the translated document. This option can be overridden by custom tag options. See the \fBtranslated\fR option below. .IP "\fBunwrap_attributes\fR" 4 .IX Item "unwrap_attributes" Les attributs sont mis en forme par défaut. Cette option désactive la mise en forme. .IP "\fBcaseinsensitive\fR" 4 .IX Item "caseinsensitive" Rend la recherche des balises et attributs insensibles à la casse. Si elle n’est pas définie, laNG et <\s-1BOOK\s0>Lang seront traités comme lang. .IP "\fBescapequotes\fR" 4 .IX Item "escapequotes" Guillemets d’échappement dans les chaînes de sortie. Nécessaires, par exemple, pour créer des ressources de chaîne pour être utilisées par les outils de construction d’Android. .Sp Voir également : https://developer.android.com/guide/topics/resources/string\-resource.html .IP "\fBincludeexternal\fR" 4 .IX Item "includeexternal" Lorsque cette option est définie, les entités externes sont incluses dans le document généré (la traduction) et pour l’extraction des chaînes. Sinon, vous devrez traduire ces entités externes séparément, comme des documents indépendants. .IP "\fBontagerror\fR" 4 .IX Item "ontagerror" Cette option permet de changer le comportement du module lorsqu’il rencontre une syntaxe \s-1XML\s0 invalide (une balise est fermée ne correspondant pas à la dernière balise ouverte, ou un attribut d’une balise sans valeur). Elle peut prendre les valeurs suivantes : .RS 4 .IP "\fIfail\fR" 4 .IX Item "fail" Il s’agit de la valeur par défaut. Le module échouera avec un message d’erreur. .IP "\fIwarn\fR" 4 .IX Item "warn" Le module continuera, mais affichera un avertissement. .IP "\fIsilent\fR" 4 .IX Item "silent" Le module continuera, sans afficher de message d’avertissement. .RE .RS 4 .Sp Faites attention avec cette option. Il est généralement recommandé de corriger le fichier d’entrée. .RE .IP "\fBtagsonly\fR" 4 .IX Item "tagsonly" Note : Cette option est obsolète. .Sp N’extrait que les balises spécifiées par l’option « tags ». Sinon, toutes seront extraites, sauf celles spécifiées. .IP "\fBdoctype\fR" 4 .IX Item "doctype" Chaîne qui sera comparée à la première ligne du doctype du document (s’il est défini). Si elle ne correspond pas, un avertissement indiquera que le document n’est peut\-être pas du bon type. .IP "\fBaddlang\fR" 4 .IX Item "addlang" Chaîne indiquant le chemin (par exemple, ) d’une balise pour laquelle un attribut lang=\*(L"...\*(R" doit être ajouté. La langue sera définie comme étant le nom du fichier \s-1PO\s0 sans l’extension .po. .IP "\fBtags\fR" 4 .IX Item "tags" Note : Cette option est obsolète. Vous devriez utiliser les options \&\fBtranslated\fR et \fBuntranslated\fR à la place. .Sp Liste de balises (séparées par des espaces) que vous voulez traduire ou sauter. Par défaut, les balises spécifiées seront exclues, mais si vous utilisez l’option « tagsonly », les balises spécifiées seront les seules à être inclues. Les balises doivent être de la forme , mais vous pouvez en joindre () pour indiquer que le contenu de la balise ne sera traduit que lorsqu’elle est comprise dans une balise . .Sp Vous pouvez également spécifier des options aux balises en précédant les hiérarchies de balises par des caractères. Par exemple, vous pouvez ajouter un « w » (wrap \- remise en forme) ou « W » (pas de remise en forme) pour changer le comportement par défaut fourni par l’option « wrap » globale. .Sp Par exemple : W .IP "\fBattributes\fR" 4 .IX Item "attributes" 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 . .IP "\fBfoldattributes\fR" 4 .IX Item "foldattributes" Ne pas traduire les attributs des balises « inline ». À la place, remplacer tous les attributs de la balise par po4a\-id=. .Sp Ceci est utile quand des attributs ne doivent pas être traduits, puisque cela simplifie les chaînes pour les traducteurs et évite les fautes de typographie. .IP "\fBcustomtag\fR" 4 .IX Item "customtag" Liste de balises (séparées par des espaces) qui ne doivent pas être traitées comme des balises. Ces balises sont prisent en charge comme des balises en ligne, et n’ont pas besoin d’être fermées. .IP "\fBbreak\fR" 4 .IX Item "break" Liste de balises (séparées par des espaces) qui doivent interrompre les séquences. Par défaut, toutes les balises introduisent une césure. .Sp Les balises doivent être de la forme , mais vous pouvez en joindre () si une balise () ne doit être prise en compte que si elle se trouve dans une autre balise (). .Sp Please note a tag should be listed in only one of the \fBbreak\fR, \fBinline\fR \&\fBplaceholder\fR, or \fBcustomtag\fR setting string. .IP "\fBinline\fR" 4 .IX Item "inline" Liste de balises (séparées par des espaces) que vous voulez voir traitées en ligne. Par défaut, toutes les balises introduisent une césure. .Sp Les balises doivent être de la forme , mais vous pouvez en joindre () si une balise () ne doit être prise en compte que si elle se trouve dans une autre balise (). .IP "\fBplaceholder\fR" 4 .IX Item "placeholder" Liste de balises (séparées par des espaces) qui servent à conserver un emplacement. Ces balises n’introduisent pas de césure, mais leur contenu est traduit séparément. .Sp L’emplacement d’un « placeholder » dans son bloc sera marqué à l’aide d’un chaîne similaire à : .Sp .Vb 1 \& .Ve .Sp Les balises doivent être de la forme , mais vous pouvez en joindre () si une balise () ne doit être prise en compte que si elle se trouve dans une autre balise (). .IP "\fBnodefault\fR" 4 .IX Item "nodefault" Liste de balises (séparées par des espaces) que le module doit placer par défaut dans aucune catégorie. .Sp If you have a tag which has its default setting by the subclass of this module but you want to set alternative setting, you need to list that tag as a part of the \fBnodefault\fR setting string. .IP "\fBcpp\fR" 4 .IX Item "cpp" Prise en charge des directives du préprocesseur C. Quand cette option est activée, po4a considérera les directives du préprocesseur comme des césures de paragraphe. C’est important si le préprocesseur est utilisé pour le fichier \s-1XML\s0 car sinon, les directives pourraient être insérées au milieu de lignes si po4a considère qu’elles appartiennent au paragraphe en cours, et elles ne seraient plus reconnues par le préprocesseur. Note : les directive du préprocesseur ne doivent apparaître qu’entre des balises (elles ne doivent pas introduire de césure). .IP "\fBtranslated\fR" 4 .IX Item "translated" Liste de balises, séparées par des espaces, que vous souhaitez traduire. .Sp Les balises doivent être de la forme , mais vous pouvez en joindre () si une balise () ne doit être prise en compte que si elle se trouve dans une autre balise (). .Sp You can also specify some tag options by putting some characters in front of the tag hierarchy. This overrides the default behavior specified by the global \fBwrap\fR and \fBdefaulttranslateoption\fR option. .RS 4 .IP "\fIw\fR" 4 .IX Item "w" Les balises doivent être traduites et leur contenu peut être remis en forme. .IP "\fIW\fR" 4 .IX Item "W" Les balises doivent être traduites et leur contenu ne doit pas être remis en forme. .IP "\fIi\fR" 4 .IX Item "i" Les balises doivent être traduites en ligne. .IP "\fIp\fR" 4 .IX Item "p" Les balises doivent être traduites comme moyen de conserver un emplacement. .RE .RS 4 .Sp Internally, the \s-1XML\s0 parser only cares about these four options: \fIw\fR \fIW\fR \&\fIi\fR \fIp\fR. .Sp .Vb 4 \& * Tags listed in B are set to I or I depending on the option. \& * Tags listed in B are set to I. \& * Tags listed in B are set to I

. \& * Tags listed in B are without any of these options set. .Ve .Sp You can verify actual internal parameter behavior by invoking \fBpo4a\fR with \&\fB\-\-debug\fR option. .Sp Par exemple : W .Sp Please note a tag should be listed in either \fBtranslated\fR or \&\fBuntranslated\fR setting string. .RE .IP "\fBuntranslated\fR" 4 .IX Item "untranslated" Liste de balises, séparées par des espaces, que vous ne souhaitez pas traduire. .Sp Les balises doivent être de la forme , mais vous pouvez en joindre () si une balise () ne doit être prise en compte que si elle se trouve dans une autre balise (). .Sp Please note a translatable inline tag in an untranslated tag is treated as a translatable breaking tag, \fIi\fR setting is dropped and \fIw\fR or \fIW\fR is set depending on the option. .IP "\fBdefaulttranslateoption\fR" 4 .IX Item "defaulttranslateoption" Les catégories par défaut pour les balises qui ne sont dans aucune des catégories translated, untranslated, break, inline ou placeholder. .Sp This is a set of letters as defined in \fBtranslated\fR and this setting is only valid for translatable tags. .SH "WRITING DERIVATIVE MODULES" .IX Header "WRITING DERIVATIVE MODULES" .SS "DÉFINITION \s-1DES BALISES ET ATTRIBUTS\s0 À \s-1TRADUIRE\s0" .IX Subsection "DÉFINITION DES BALISES ET ATTRIBUTS À TRADUIRE" La configuration la plus simple consiste à définir quelles balises et attributs vous voulez que l’analyseur traduise. Elle doit être faite dans la fonction initialize. Vous devez dans un premier temps appeler la fonction initialize principale, pour obtenir les options de la ligne de commande, puis ajouter vos propres configurations à la table de hachage options. Si vous voulez traiter de nouvelles options de la ligne de commande, vous devez les définir avant d’appeler la fonction initialize principale : .PP .Vb 6 \& $self\->{options}{\*(Aqnew_option\*(Aq}=\*(Aq\*(Aq; \& $self\->SUPER::initialize(%options); \& $self\->{options}{\*(Aq_default_translated\*(Aq}.=\*(Aq

\*(Aq; \& $self\->{options}{\*(Aqattributes\*(Aq}.=\*(Aq <p>lang id\*(Aq; \& $self\->{options}{\*(Aq_default_inline\*(Aq}.=\*(Aq <br>\*(Aq; \& $self\->treat_options; .Ve .PP You should use the \fB_default_inline\fR, \fB_default_break\fR, \&\fB_default_placeholder\fR, \fB_default_translated\fR, \fB_default_untranslated\fR, and \fB_default_attributes\fR options in derivative modules. This allow users to override the default behavior defined in your module with command line options. .SS "\s-1OVERRIDE THE DEFAULT BEHAVIOR WITH COMMAND LINE OPTIONS\s0" .IX Subsection "OVERRIDE THE DEFAULT BEHAVIOR WITH COMMAND LINE OPTIONS" If you don't like the default behavior of this xml module and its derivative modules, you can provide command line options to change their behavior. .PP See \fBLocale::Po4a::Docbook\fR\|(3pm), .SS "\s-1SURCHARGE DE LA FONCTION\s0 found_string" .IX Subsection "SURCHARGE DE LA FONCTION found_string" Une autre étape simple consiste à surcharger la fonction « found_string », qui prend les chaînes extraites par l’analyseur en paramètre, pour les traduire. Elle vous permet de contrôler quelles chaînes vous voulez traduire, et d’effectuer des transformations avant ou après la traduction en elle\-même. .PP Elle reçoit le texte extrait, la référence où elle se trouve, et une table de hachage qui contient des informations additionnelles permettant de contrôler quelles sont les chaînes à traduire, comment les traduire et de générer le commentaire. .PP Le contenu de ces options dépend du type de la chaîne (spécifié dans une entrée de la table de hachage) : .ie n .IP "type=""tag""" 4 .el .IP "type=``tag''" 4 .IX Item "type=tag" La chaîne trouvée est le contenu d’une balise à traduire. L’entrée « tag_options » contient les caractères d’options se trouvant en tête de la hiérarchie de balise de l’option « tags » du module. .ie n .IP "type=""attribute""" 4 .el .IP "type=``attribute''" 4 .IX Item "type=attribute" Signifie que la chaîne trouvée correspond à la valeur d’un attribut à traduire. L’entrée « attribute » contient le nom de l’attribut. .PP Elle doit renvoyer le texte qui remplacera l’original dans le document traduit. Voici un exemple simple d’implémentation de cette fonction : .PP .Vb 6 \& sub found_string { \& my ($self,$text,$ref,$options)=@_; \& $text = $self\->translate($text,$ref,"type ".$options\->{\*(Aqtype\*(Aq}, \& \*(Aqwrap\*(Aq=>$self\->{options}{\*(Aqwrap\*(Aq}); \& return $text; \& } .Ve .PP Il y a également un exemple simple dans le module Dia, qui ne filtre que quelques chaînes. .SS "\s-1MODIFIER LE TYPE DES BALISES\s0 (À \s-1FAIRE\s0)" .IX Subsection "MODIFIER LE TYPE DES BALISES (À FAIRE)" Ceci est plus complexe, mais permet un contrôle (presque) total du paramétrage. C’est basé sur une liste de tables de hachage, chacune définissant le comportement d’un type de balise. La liste doit être triée de façon à ce que les balises les plus générales se trouvent après les plus concrètes (trié dans un premier temps par la clé « beginning » puis par « end »). Pour définir un type de balise, vous n’aurez qu’à créer une table de hachage avec les clés suivantes : .IP "\fBbeginning\fR" 4 .IX Item "beginning" Spécifie le début de la balise, suivi de « < ». .IP "\fBend\fR" 4 .IX Item "end" Spécifie la fin de la balise, précédé de « > ». .IP "\fBbreaking\fR" 4 .IX Item "breaking" Indique s’il s’agit d’une balise de césure. Une balise n’étant pas de césure (en ligne) peut être incluse dans le contenu d’une autre. L’option peut prendre les valeurs fausse (0), vraie (1) ou non définie. Si vous la laissez non définie, vous devrez définir la fonction f_breaking qui indique si une balise d’une classe donnée est une balise de césure ou pas. .IP "\fBf_breaking\fR" 4 .IX Item "f_breaking" C’est une fonction qui indique si la balise suivante est une balise de césure ou pas. Elle devrait être définie si l’option \fBbreaking\fR ne l’est pas. .IP "\fBf_extract\fR" 4 .IX Item "f_extract" Si vous ne définissez pas cette clé, la fonction générique d’extraction devra extraire la balise elle\-même. Elle est utile pour les balises qui peuvent contenir d’autres balises ou structures particulières, de façon à ce que l’analyseur ne devienne pas fou. Cette fonction prend en paramètre un booléen qui indique si la balise doit être retirée du flux d’entrée ou non. .IP "\fBf_translate\fR" 4 .IX Item "f_translate" Cette fonction prend en paramètre une balise (dans le format de \&\fBget_string_until()\fR) et renvoie la balise traduite (avec les attributs traduits ou n’importe quelle transformation nécessaire) en une seule chaîne. .SH "INTERNAL FUNCTIONS used to write derivative parsers" .IX Header "INTERNAL FUNCTIONS used to write derivative parsers" .SS "\s-1TRAITEMENT DES BALISES\s0" .IX Subsection "TRAITEMENT DES BALISES" .IP "\fBget_path()\fR" 4 .IX Item "get_path()" Cette fonction renvoie le chemin vers la balise actuelle à partir de la racine du document, sous la forme <html><body><p>. .Sp Un tableau supplémentaire de balises (sans chevrons) peut être fourni en paramètre. Ces éléments du chemin sont ajoutés à la fin du chemin en cours. .IP "\fBtag_type()\fR" 4 .IX Item "tag_type()" Cette fonction renvoie l’index dans la liste tag_types qui correspond à la prochaine balise du flux d’entrée ou \-1 s’il s’agit de la fin du fichier d’entrée. .Sp Here, the tag has structure started by < and end by > and it can contain multiple lines. .Sp This works on the array \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR holding input document data and reference indirectly via \f(CW\*(C`$self\->shiftline()\*(C'\fR and \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR. .IP "extract_tag($$)" 4 .IX Item "extract_tag($$)" Cette fonction renvoie la balise suivante du flux d’entrée sans son début ou sa fin, sous la forme d’un tableau, pour maintenir les références du fichier d’entrée. Elle prend deux paramètres : le type de la balise (tel qu’il est renvoyé par tag_type) et un booléen indiquant s’il doit être retiré du flux d’entrée. .Sp This works on the array \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR holding input document data and reference indirectly via \f(CW\*(C`$self\->shiftline()\*(C'\fR and \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR. .IP "get_tag_name(@)" 4 .IX Item "get_tag_name(@)" Cette fonction renvoie le nom de la balise passée en paramètre, dans la même forme que le tableau renvoyé par extract_tag. .IP "\fBbreaking_tag()\fR" 4 .IX Item "breaking_tag()" Cette fonction renvoie un booléen qui indique si la prochaine balise est une balise de césure ou pas (balise en ligne). Le flux d’entrée n’est pas touché. .IP "\fBtreat_tag()\fR" 4 .IX Item "treat_tag()" Cette fonction traduit la balise suivante du flux d’entrée, en utilisant les fonctions de traduction personnalisées pour chaque balise. .Sp This works on the array \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR holding input document data and reference indirectly via \f(CW\*(C`$self\->shiftline()\*(C'\fR and \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR. .IP "tag_in_list($@)" 4 .IX Item "tag_in_list($@)" Cette fonction renvoie une chaîne qui indique si son premier paramètre (une hiérarchie de balise) correspond à une des balises du second paramètre (une liste de balises ou une hiérarchie de balises). Si elle ne correspond pas, la valeur 0 est renvoyée. Sinon, elle renvoie les options de la balise qui correspond (les caractères qui la précèdent) ou 1 (si la balise n’a pas d’option). .SS "\s-1TRAITEMENT DES ATTRIBUTS\s0" .IX Subsection "TRAITEMENT DES ATTRIBUTS" .IP "treat_attributes(@)" 4 .IX Item "treat_attributes(@)" Cette fonction s’occupe de la traduction des attributs des balises. Elle reçoit les balises sans les marquer de début ou de fin, puis trouve les attributs, et traduit ceux qui doivent l’être (spécifiés par l’option « attributes » du module). Elle renvoie une chaîne brute avec les balises traduites. .SS "\s-1WORKING WITH TAGGED CONTENTS\s0" .IX Subsection "WORKING WITH TAGGED CONTENTS" .IP "\fBtreat_content()\fR" 4 .IX Item "treat_content()" This function gets the text until the next breaking tag (not inline) from the input stream. Translate it using each tag type's custom translation functions. .Sp This works on the array \f(CW\*(C`@{$self\->{TT}{doc_in}}\*(C'\fR holding input document data and reference indirectly via \f(CW\*(C`$self\->shiftline()\*(C'\fR and \f(CW\*(C`$self\->unshiftline($$)\*(C'\fR. .SS "\s-1TRAITEMENT DES OPTIONS DU MODULE\s0" .IX Subsection "TRAITEMENT DES OPTIONS DU MODULE" .IP "\fBtreat_options()\fR" 4 .IX Item "treat_options()" Cette fonction remplit les structures internes qui contiennent les balises, les attributs et les données à mettre en ligne en fonction des options du module (spécifiées par la ligne de commande ou dans la fonction initialize). .SS "RÉCUPÉRER \s-1DU TEXTE DU DOCUMENT\s0 D’ENTRÉE" .IX Subsection "RÉCUPÉRER DU TEXTE DU DOCUMENT D’ENTRÉE" .IP "get_string_until($%)" 4 .IX Item "get_string_until($%)" Cette fonction renvoie un tableau des lignes (et leurs références) du document d’entrée de son début jusqu’à ce que soit trouvé son premier paramètre. Le second paramètre est une table de hachage d’options. La valeur 0 signifie que l’option est désactivée (par défaut) et 1, activée. .Sp Les options valables sont : .RS 4 .IP "\fBinclude\fR" 4 .IX Item "include" Fait en sorte que le tableau renvoyé contient le texte recherché .IP "\fBremove\fR" 4 .IX Item "remove" Retire de l’entrée le flux renvoyé .IP "\fBunquoted\fR" 4 .IX Item "unquoted" Permet de s’assurer que le texte recherché ne se trouve pas entre guillemets .RE .RS 4 .RE .IP "skip_spaces(\e@)" 4 .IX Item "skip_spaces(@)" Cette fonction reçoit en paramètre la référence à un paragraphe (dans le format renvoyé par get_string_until), retire les espaces de tête et les renvoie comme une simple chaîne. .IP "join_lines(@)" 4 .IX Item "join_lines(@)" Cette fonction renvoie une simple chaîne à partir du texte fourni en paramètre sous la forme d’un tableau (en ignorant la référence). .SH "ÉTAT DE CE MODULE" .IX Header "ÉTAT DE CE MODULE" Ce module peut traduire les balises et les attributs. .SH "LISTE DES CHOSES À FAIRE" .IX Header "LISTE DES CHOSES À FAIRE" \&\s-1DOCTYPE\s0 (ENTITÉS) .PP La traduction des entités est à peine supportée. Les entités sont traduites telles quelles, et les balises qu’elles contiennent ne sont pas prises en compte. Les entités sur plusieurs lignes ne sont pas supportées. De plus, les entités sont remises en forme pendant la traduction. .PP \&\s-1MODIFIER LES BALISES DEPUIS LES MODULES\s0 DÉRIVÉS (déplacer la structure tag_types à l’intérieur de la table de hachage \f(CW$self\fR ?) .SH "VOIR AUSSI" .IX Header "VOIR AUSSI" \&\fBLocale::Po4a::TransTractor\fR\|(3pm), \&\fBpo4a\fR\|(7) .SH "AUTEURS" .IX Header "AUTEURS" .Vb 2 \& Jordi Vilalta <jvprat@gmail.com> \& Nicolas François <nicolas.francois@centraliens.net> .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 © 2004 Jordi Vilalta <jvprat@gmail.com> \& Copyright © 2008\-2009 Nicolas François <nicolas.francois@centraliens.net> .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).