.\" Automatically generated by Pod::Man 2.28 (Pod::Simple 3.29) .\" .\" 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 turned on, 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 "2016-01-05" "Herramientas de po4a" "Herramientas de 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 "NOMBRE" .IX Header "NOMBRE" Locale::Po4a::Sgml \- Convierte documentos \s-1SGML\s0 desde/a ficheros \s-1PO\s0 .SH "DESCRIPCIÓN" .IX Header "DESCRIPCIÓN" El objetivo del proyecto po4a («PO for anything», \s-1PO\s0 para todo) es facilitar la traducción (y más interesante, el mantenimiento de las traducciones) usando las herramientas de gettext en áreas donde no eran de esperar, como la documentación. .PP Locale::Po4a::Sgml es un módulo que asiste en la traducción de documentación en formato \s-1SGML\s0 a otros lenguajes (humanos). .PP This module uses \fBonsgmls\fR(1) to parse the \s-1SGML\s0 files. Make sure it is installed. Also make sure that the \s-1DTD\s0 of the \s-1SGML\s0 files are installed in the system. .SH "OPCIONES ACEPTADAS POR ESTE MODULO" .IX Header "OPCIONES ACEPTADAS POR ESTE MODULO" .IP "\fBdebug\fR" 4 .IX Item "debug" Es una lista de palabras clave separadas por espacios que indican qué partes se quieren depurar. Los valores posibles son: «tag», «generic», «entities» y «refs». .IP "\fBverbose\fR" 4 .IX Item "verbose" Muestra más información sobre qué está pasando, .IP "\fBtranslate\fR" 4 .IX Item "translate" Lista de etiquetas («tags») adicionales separados por espacios (aparte de los proporcionados por \s-1DTD\s0) cuyo contenido debe generar un msgid adicional. .IP "\fBsection\fR" 4 .IX Item "section" Lista separada por espacios de las etiquetas adicionales (aparte de los proporcionados por el \s-1DTD\s0) que pueden contener otras etiquetas, algunos de los cuales pueden ser de la categoría \fBtranslate\fR. .IP "\fBindent\fR" 4 .IX Item "indent" Lista de todas las etiquetas que aumentan el nivel de sangrado, separadas por espacios. .IP "\fBverbatim\fR" 4 .IX Item "verbatim" La organización del contenido de estas etiquetas no se debe cambiar. El párrafo no se justificará ni se añadirán espacios de sangrado ni saltos de línea por motivos estéticos. .IP "\fBempty\fR" 4 .IX Item "empty" Etiquetas que no necesitan cierre. .IP "\fBignore\fR" 4 .IX Item "ignore" Las etiquetas ignoradas y consideradas por po4a como datos de caracteres sencillos. Esto significa que pueden ser parte de un msgid. Por ejemplo, es un buen candidato para esta categoría ya que añadirlo en la sección «translate» crearía unos msgid que no serían la frase completa, lo cual no es recomendable. .IP "\fBattributes\fR" 4 .IX Item "attributes" Lista separada por espacios de los atributos que necesita traducir. Puede especificar los atributos por su nombre (por ejemplo, «lang»), pero puede añadirle como prefijo una jerarquía de etiquetas para especificar que esta etiqueta sólo se debe traducir cuando esté dentro de la etiqueta especificada. Por ejemplo: lang indica que el atributo «lang» sólo se traducirá cuando esté dentro de la etiqueta , y éste esté dentro de una etiqueta . Los nombres de las etiquetas son, generalmente, expresiones regulares que le permiten escribir cosas tales como lang sólo para traducir atributos de «lang» que están dentro de una etiqueta o . .IP "\fBqualify\fR" 4 .IX Item "qualify" Lista de elementos separados por espacios de los atributos, para los que la traducción se debe calificar por el nombre de atributo. Observe que definir esto automáticamente también añade el atributo en la lista de 'attributes'. .IP "\fBforce\fR" 4 .IX Item "force" Proceed even if the \s-1DTD\s0 is unknown or if onsgmls finds errors in the input file. .IP "\fBinclude-all\fR" 4 .IX Item "include-all" Por omisión, los msgid que contienen solamente una entidad (por ejemplo \&'&version;') se obvian, para comodidad de los traductores. Evitará esta optimización si activa ésta opción. Puede ser útil si el documento contiene una construcción como «Á», aunque dudo que nunca pase algo así... .IP "\fBignore-inclusion\fR" 4 .IX Item "ignore-inclusion" Space separated list of entities that won't be inlined. Use this option with caution: it may cause onsgmls (used internally) to add tags and render the output document invalid. .SH "ESTADO DE ESTE MODULO" .IX Header "ESTADO DE ESTE MODULO" El resultado es perfecto. Es decir, los documentos generados son idénticos. A pesar de todo aún hay algunos problemas: .IP "\(bu" 2 The error output of onsgmls is redirected to /dev/null, which is clearly bad. I don't know how to avoid that. .Sp The problem is that I have to \*(L"protect\*(R" the conditional inclusions (i.e. the \&\f(CW\*(C`\*(C'\fR stuff) from onsgmls. Otherwise onsgmls eats them, and I don't know how to restore them in the final document. To prevent that, I rewrite them to \f(CW\*(C`{PO4A\-beg\-foo}\*(C'\fR and \f(CW\*(C`{PO4A\-end}\*(C'\fR. .Sp The problem with this is that the \f(CW\*(C`{PO4A\-end}\*(C'\fR and such I add are invalid in the document (not in a

tag or so). .Sp Everything works well with onsgmls's output redirected that way, but it will prevent us from detecting that the document is badly formatted. .IP "\(bu" 2 Esto sólo funciona con DebianDoc y DocBook \s-1DTD.\s0 Añadir compatibilidad para un nuevo \s-1DTD\s0 debería ser muy fácil. El mecanismo es común para todos los \&\s-1DTD,\s0 sólo tiene que dar una lista de las etiquetas existentes y algunas de sus características. .Sp Estoy de acuerdo, esto necesita un poco más de documentación, pero aún se considera beta, y odio documentar cosas que probablemente cambiarán. .IP "\(bu" 2 Advertencia: la compatibilidad con \s-1DTD\s0 es aún experimental. No leí ningún manual de referencia para mirar la definición de cada etiqueta. Fui añadiendo definiciones de etiquetas al módulo hasta que funcionaba para varios documentos que encontré en la red. Si su documento utiliza más etiquetas que el mío, no funcionará. Pero tal y como he dicho, arreglar esto debe ser muy fácil. .Sp Sólo probé DocBook con \s-1SAG \s0(System Administrator Guide, Guia del administrador de sistemas), pero este documento es muy grande, y debe usar la mayoría de las características específicas de DocBook. .Sp Para DebianDoc, he probado algunos de los manuales de \s-1DDP,\s0 pero no todos aún. .IP "\(bu" 2 En el caso de inclusión de ficheros, la cadena de referencia del mensaje del fichero \s-1PO \s0(p.e., líneas como \f(CW\*(C`#: en/titletoc.sgml:9460\*(C'\fR) serán incorrectas. .Sp This is because I preprocess the file to protect the conditional inclusion (i.e. the \f(CW\*(C`\*(C'\fR stuff) and some entities (like &version;) from onsgmls because I want them verbatim to the generated document. For that, I make a temp copy of the input file and do all the changes I want to this before passing it to onsgmls for parsing. .Sp Para que esto funcione, reemplazo las entidades que incluyen un fichero con el contenido del fichero dado (de forma que puedo proteger lo que convenga del subfichero también). Pero por ahora no se hace nada para corregir las referencias después (p. ej., nombre de fichero y número de línea). No estoy seguro de cuál es la mejor solución. .SH "AUTORES" .IX Header "AUTORES" This module is an adapted version of sgmlspl (\s-1SGML\s0 postprocessor for the \&\s-1ONSGMLS\s0 parser) which was: .PP .Vb 1 \& Copyright (c) 1995 by David Megginson .Ve .PP La adaptación a po4a la realizó: .PP .Vb 2 \& Denis Barbier \& Martin Quinson (mquinson#debian.org) .Ve .SH "TRADUCCION" .IX Header "TRADUCCION" .Vb 2 \& Jordi Vilalta \& Omar Campagne .Ve .SH "DERECHO DE COPIA Y LICENCIA" .IX Header "DERECHO DE COPIA Y LICENCIA" .Vb 2 \& Copyright (c) 1995 por David Megginson \& Copyright 2002, 2003, 2004, 2005 por SPI, inc. .Ve .PP Esto es software libre; puede redistribuirlo y/o modificarlo bajo las condiciones de la licencia \s-1GPL \s0(consulte el fichero \s-1COPYING\s0).