LOCALE::PO4A::SGML.3PM(1) User Contributed Perl Documentation NOMBRE Locale::Po4a::Sgml - Convierte documentos SGML desde/a ficheros PO DESCRIPCION El objetivo del proyecto po4a (<>, PO para todo) es facilitar la traduccion (y mas interesante, el mantenimiento de las traducciones) usando las herramientas de gettext en ambitos donde no previstos, como la documentacion. Locale::Po4a::Sgml es un modulo que asiste en la traduccion de documentacion en formato SGML a otros lenguajes (humanos). Este modulo usa onsgmls(1) para analizar los ficheros SGML. Asegurese de que esta instalado. Asegurese tambien de que el DTD de los ficheros SGML estan instalados en el sistema. OPCIONES ACEPTADAS POR ESTE MODULO debug Lista separada por espacios de palabras clave que indican que categoria de mensajes de depuracion adicionales deben mostrarse. Los valores posibles son: "entidades", "generico", "onsgml", "refs" y "etiqueta". verbose Muestra mas informacion sobre que esta pasando. translate Lista separada por espacios de etiquetas adicionales (ademas 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 (ademas de las proporcionadas por el DTD) que contienen otras etiquetas, algunas de ellas de la categoria translate. indent Lista separada por espacios de etiquetas que aumentan el nivel de la sangria. Esto afectara a la identacion en el documento resultante. verbatim La organizacion del contenido de estas etiquetas no se debe cambiar. El parrafo no se justificara ni se anadiran espacios de sangrado ni saltos de linea por motivos esteticos. 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, es un buen candidato para esta categoria ya que ponerlo en la seccion translate crearia un msgids solo 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 tambien puede anteponerle una jerarquia de etiquetas, para especificar que este atributo solo se traducira cuando este dentro de la etiqueta especificada. Por ejemplo: "lang" especifica que el atributo lang solo se traducira si esta en una etiqueta "", que esta en una etiqueta "". Los nombres de las etiquetas son en realidad expresiones regulares, asi que tambien puedes escribir cosas como "lang" para traducir solo atributos "lang" que esten en una etiqueta "" o en una etiqueta " >>." qualify Una lista separada por espacios de atributos para los que la traduccion debe calificarse por el nombre del atributo, es decir, el texto extraido para la transalacion incluira tanto el nombre del atributo como su valor. Por ejemplo, para una etiqueta como "" se presentara a los traductores la cadena "lang_en="foo"". Tenga en cuenta que esto tambien anade automaticamente 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 opcion se evita esta optimizacion. Puede ser util si el documento contiene una construccion como "Á", aunque dudo que tales cosas ocurran nunca... ignore-inclusion Lista separada por espacios de entidades que no se alinearan. Utilice esta opcion con precaucion: puede provocar que onsgmls (utilizado internamente) anada etiquetas y haga que el documento de salida no sea valido. ESTADO DE ESTE MODULO El resultado es perfecto. Es decir, los documentos generados son exactamente iguales a los originales. Pero sigue habiendo algunos problemas: o La salida de error de onsgmls es redirigida a /dev/null por defecto, lo cual es claramente malo. No se como evitarlo. El problema es que tengo que "proteger" las inclusiones condicionales (es decir, el "" cosas) de onsgmls. Si no, onsgmls se las come, y no se como 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 anado no son validos en el documento (pero no en una etiqueta

o similar). Si desea ver la salida onsgmls, solo tiene que anadir lo siguiente a su linea de ordenes (o linea de configuracion de po4a): -o debug=onsgmls o Esto solo funciona con DebianDoc y DocBook DTD. Anadir compatibilidad para un nuevo DTD deberia ser muy facil. El mecanismo es comun para todos los DTD, solo tiene que dar una lista de las etiquetas existentes y algunas de sus caracteristicas. Estoy de acuerdo, esto necesita un poco mas de documentacion, pero aun se considera beta, y odio documentar cosas que probablemente cambiaran. o Advertencia: la compatibilidad con DTD es aun experimental. No lei ningun manual de referencia para mirar la definicion de cada etiqueta. Fui anadiendo definiciones de etiquetas al modulo hasta que funcionaba para varios documentos que encontre en la red. Si su documento utiliza mas etiquetas que el mio, no funcionara. Pero tal y como he dicho, arreglar esto debe ser muy facil. Solo probe DocBook con SAG (System Administrator Guide, Guia del administrador de sistemas), pero este documento es muy grande, y debe usar la mayoria de las caracteristicas especificas de DocBook. Para DebianDoc, he probado algunos de los manuales de DDP, pero no todos aun. o En el caso de inclusion de ficheros, la cadena de referencia del mensaje del fichero PO (p.e., lineas como "#: en/titletoc.sgml:9460") seran incorrectas. Esto se debe a que preprocesar el archivo para proteger la inclusion condicional (es decir, la "" cosas) y algunas entidades (como "&version;") 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 analisis sintactico. 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 tambien). Pero por ahora no se hace nada para corregir las referencias despues (p. ej., nombre de fichero y numero de linea). No estoy seguro de cual es la mejor solucion. AUTORES Este modulo es una version adaptada de sgmlspl (postprocesador SGML para los analizadores SGMLS y ONSGMLS) que hizo: Copyright (C) 1995 David Megginson La adaptacion a po4a la realizo: Denis Barbier Martin Quinson (mquinson#debian.org) TRADUCCION Jordi Vilalta Omar Campagne DERECHO DE COPIA Y LICENCIA Copyright (C) 1995 David Megginson . Copyright (C) 2002-2005 SPI, Inc. Este programa es software libre; puede redistribuirlo y/o modificarlo bajo los terminos 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-06-26 LOCALE::PO4A::SGML.3PM(1)