Provided by: po4a_0.73-2ubuntu1_all bug

NOMBRE

       Locale::Po4a::Sgml - Convierte documentos SGML desde/a ficheros PO

DESCRIPCIÓN

       El objetivo del proyecto po4a («PO for anything», PO para todo) es facilitar la traducción (y más
       interesante, el mantenimiento de las traducciones) usando las herramientas de gettext en ámbitos dónde no
       previstos, como la documentación.

       Locale::Po4a::Sgml es un módulo que asiste en la traducción de documentación en formato SGML a otros
       lenguajes (humanos).

       Este módulo usa onsgmls(1) para analizar los ficheros SGML. Asegúrese de que está instalado. Asegúrese
       también de que el DTD de los ficheros SGML están instalados en el sistema.

OPCIONES ACEPTADAS POR ESTE MODULO

       debug
           Lista  separada  por  espacios  de palabras clave que indican qué categoría de mensajes de depuración
           adicionales deben mostrarse. Los valores posibles son: "entidades", "genérico",  "onsgml",  "refs"  y
           "etiqueta".

       verbose
           Muestra más información sobre qué está pasando.

       translate
           Lista  separada  por espacios de etiquetas adicionales (además de las proporcionadas por el DTD) cuyo
           contenido debe formar un msgid adicional, es decir, que debe traducirse.

       section
           Lista separada por espacios de etiquetas adicionales (además de las proporcionadas por  el  DTD)  que
           contienen otras etiquetas, algunas de ellas de la categoría translate.

       indent
           Lista  separada  por  espacios  de  etiquetas que aumentan el nivel de la sangría. Esto afectará a la
           identación en el documento resultante.

       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.

       empty
           Etiquetas que no necesitan cierre.

       ignore
           Etiquetas  ignoradas y consideradas como datos char planos por po4a. Es decir, pueden formar parte de
           un msgid. Por ejemplo, <b> es un buen candidato para esta categoría ya  que  ponerlo  en  la  sección
           translate crearía un msgids sólo con su contenido, (y normalmente no es una frase entera), lo cual es
           malo.

       attributes
           Una  lista  separada  por  espacios  de  los  atributos  que  deben traducirse. Puede especificar los
           atributos por su nombre (por ejemplo, "lang"),  pero  también  puede  anteponerle  una  jerarquía  de
           etiquetas,  para  especificar  que  este atributo sólo se traducirá cuando esté dentro de la etiqueta
           especificada. Por ejemplo: "<bbb><aaa>lang" especifica que el atributo lang sólo se traducirá si está
           en una etiqueta "<aaa>", que está en una etiqueta "<bbb>".  Los  nombres  de  las  etiquetas  son  en
           realidad  expresiones  regulares,  así  que  también  puedes escribir cosas como "<aaa|bbb>lang" para
           traducir sólo atributos "lang" que estén en una etiqueta "<aaa>" o en una etiqueta "<bbb> >>."

       qualify
           Una lista separada por espacios de atributos para los que  la  traducción  debe  calificarse  por  el
           nombre  del  atributo,  es decir, el texto extraído para la transalación incluirá tanto el nombre del
           atributo como su valor. Por ejemplo, para una etiqueta como "<aaa lang_en="foo">" se presentará a los
           traductores la cadena "lang_en="foo"". Tenga en cuenta que  esto  también  añade  automáticamente  el
           atributo dado a la lista attributes.

       force
           Proceder incluso si el DTD es desconocido o si onsgmls encuentra errores en el archivo de entrada.

       include-all
           Por defecto, los msgids que contienen una sola entidad (como "&version;") se omiten para comodidad de
           los  traductores.  Activando  esta  opción se evita esta optimización. Puede ser útil si el documento
           contiene una construcción  como  "<title>&Aacute;</title>",  aunque  dudo  que  tales  cosas  ocurran
           nunca...

       ignore-inclusion
           Lista  separada  por  espacios de entidades que no se alinearán.  Utilice esta opción con precaución:
           puede provocar que onsgmls (utilizado internamente) añada etiquetas y haga que el documento de salida
           no sea válido.

ESTADO DE ESTE MODULO

       El resultado es perfecto. Es decir, los documentos generados son exactamente iguales  a  los  originales.
       Pero sigue habiendo algunos problemas:

       • La  salida de error de onsgmls es redirigida a /dev/null por defecto, lo cual es claramente malo. No sé
         cómo evitarlo.

         El problema es que tengo que "proteger" las inclusiones condicionales (es decir, el "<!  [  %foo  ["  y
         "]]>"  cosas)  de onsgmls. Si no, onsgmls se las come, y no sé cómo restaurarlas en el documento final.
         Para evitarlo, los reescribo en "{PO4A-beg-foo}" y "{PO4A-end}".

         El problema con esto es que "{PO4A-end}" y otros que añado no son válidos en el documento (pero  no  en
         una etiqueta <p> o similar).

         Si  desea  ver  la salida onsgmls, sólo tiene que añadir lo siguiente a su línea de órdenes (o línea de
         configuración de po4a):

           -o debug=onsgmls

       • Esto sólo funciona con DebianDoc y DocBook DTD. Añadir compatibilidad para un nuevo DTD debería ser muy
         fácil. El mecanismo es común para todos los DTD,  sólo  tiene  que  dar  una  lista  de  las  etiquetas
         existentes y algunas de sus características.

         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.

       • Advertencia: la compatibilidad con DTD 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.

         Sólo  probé DocBook con SAG (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.

         Para DebianDoc, he probado algunos de los manuales de DDP, pero no todos aún.

       • En el caso de inclusión de ficheros, la cadena de referencia del mensaje del fichero PO  (p.e.,  líneas
         como "#: en/titletoc.sgml:9460") serán incorrectas.

         Esto  se  debe  a que preprocesar el archivo para proteger la inclusión condicional (es decir, la "<! [
         %foo [" y "]]>" cosas) y algunas entidades (como "&versión;") de onsgmls porque quiero que verbatim  al
         documento  generado. Para ello, hago una copia temporal del archivo de entrada y hago todos los cambios
         que quiero a esto antes de pasarlo a onsgmls para el análisis sintáctico.

         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.

AUTORES

       Este  módulo  es  una  versión  adaptada  de  sgmlspl  (postprocesador SGML para los analizadores SGMLS y
       ONSGMLS) que hizo:

        Copyright © 1995 David Megginson <dmeggins@aix1.uottawa.ca>

       La adaptación a po4a la realizó:

        Denis Barbier <barbier@linuxfr.org>
        Martin Quinson (mquinson#debian.org)

TRADUCCION

        Jordi Vilalta <jvprat@gmail.com>
        Omar Campagne <ocampagne@gmail.com>

DERECHO DE COPIA Y LICENCIA

        Copyright © 1995 David Megginson <dmeggins@aix1.uottawa.ca>.
        Copyright © 2002-2005 SPI, Inc.

       Este programa es software libre; puede redistribuirlo y/o modificarlo bajo los términos de la GPL v2.0  o
       posterior (consulte el archivo COPYING).

POD ERRORS

       Hey! The above document had some coding errors, which are explained below:

       Around line 65:
           Unterminated C<< ... >> sequence

perl v5.38.2                                       2024-08-28                          LOCALE::PO4A::SGML.3PM(1)