.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.43) .\" .\" 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::Po 3pm" .TH Locale::Po4a::Po 3pm "2023-01-03" "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::Po \- Módulo para la manipulación de ficheros \s-1PO\s0 .SH "SINOPSIS" .IX Header "SINOPSIS" .Vb 2 \& use Locale::Po4a::Po; \& my $pofile=Locale::Po4a::Po\->new(); \& \& # Leer el fichero PO \& $pofile\->read(\*(Aqfichero.po\*(Aq); \& \& # Añadir una entrada \& $pofile\->push(\*(Aqmsgid\*(Aq => \*(AqHello\*(Aq, \*(Aqmsgstr\*(Aq => \*(Aqhola\*(Aq, \& \*(Aqflags\*(Aq => "wrap", \*(Aqreference\*(Aq=>\*(Aqfile.c:46\*(Aq); \& \& # Extraer una traducción \& $pofile\->gettext("Hello"); # devuelve \*(AqHola\*(Aq \& \& # Escribir el resultado en un fichero \& $pofile\->write(\*(Aqotrofichero.po\*(Aq); .Ve .SH "DESCRIPCIÓN" .IX Header "DESCRIPCIÓN" Locale::Po4a::Po es un módulo que permite manipular catálogos de mensajes. Con él puede leer y escribir desde/a un fichero (cuya extensión es a menudo \fIpo\fR), puede crear nuevas entradas sobre en el momento o pedir la traducción de una cadena. .PP Para una descripción más completa de los catálogos de mensajes en formato \s-1PO\s0 y su uso, consulte la documentación del programa gettext (nodo \*(L"`\s-1PO\s0 Files\*(R"'). .PP Este módulo es parte del proyecto po4a, cuyo objetivo es usar ficheros \s-1PO\s0 (diseñados originalmente para facilitar la traducción de mensajes de programa) para traducir de todo, incluyendo documentación (páginas de manual, manuales info), descripciones de paquetes, plantillas debconf, y cualquier cosa que se pueda beneficiar de esto. .SH "OPCIONES ACEPTADAS POR ESTE MODULO" .IX Header "OPCIONES ACEPTADAS POR ESTE MODULO" .IP "\fB\-\-porefs\fR \fItype\fR" 4 .IX Item "--porefs type" Define el forma de referencia: El argumento \fItype\fR puede ser \fBnever\fR para no generar ninguna referencia, \fBfile\fR para solo especificar el fichero el número de línea, \fBcounter\fR para sustituir el número de línea con un recuento ascendente, y \fBfull\fR para incluir referencias completas (predefinido: full). .IP "\fB\-\-wrap\-po\fR \fBno\fR|\fBnewlines\fR|\fInumber\fR (por omisión: 76)" 4 .IX Item "--wrap-po no|newlines|number (por omisión: 76)" Especifique cómo se debe ajustar el archivo po. Esto permite elegir entre archivos que están bien ajustados pero que podrían generar conflictos de git o archivos que son más fáciles de manejar automáticamente, pero más difíciles de leer para los humanos. .Sp Históricamente, la suite gettext ha reformateado los archivos po en la columna 77 por razones cosméticas. Esta opción especifica el comportamiento de po4a. Si se establece en un valor numérico, po4a ajustará el archivo po después de esta columna y después de nuevas líneas en el contenido. Si se establece en \fBnewlines\fR, po4a solo dividirá los msgid y msgstr después de nuevas líneas en el contenido. Si se establece en \fBno\fR, po4a no ajustará el archivo po en absoluto. Los comentarios de referencia siempre son ajustados por las herramientas gettext que usamos internamente. .Sp Tenga en cuenta que esta opción no tiene ningún impacto en cómo se ajustan msgid y msgstr, es decir, en cómo se agregan nuevas líneas al contenido de estas cadenas. .IP "\fB\-\-msgid\-bugs\-address\fR \fIcorreo\-e@direccion\fR" 4 .IX Item "--msgid-bugs-address correo-e@direccion" Define el destinatario de los informes de fallo en los msgid. Por omisión, los ficheros \s-1POT\s0 creados no tienen el campo «Report\-Msgid\-Bugs\-To». .IP "\fB\-\-copyright\-holder\fR \fIcadena\fR" 4 .IX Item "--copyright-holder cadena" Define el titula de los derechos de reproducción en la cabecera del \s-1POT.\s0 El valor predefinido es «Free Software Foundation, Inc.» .IP "\fB\-\-package\-name\fR \fIstring\fR" 4 .IX Item "--package-name string" Define el nombre del paquete en la cabecera del \s-1POT.\s0 El valor por omisión es «PACKAGE». .IP "\fB\-\-package\-version\fR \fIstring\fR" 4 .IX Item "--package-version string" Define la versión del paquete en la cabecera del \s-1POT.\s0 El valor por omisión es «VERSION». .SH "Funciones pertinentes a todo el catálogo de mensajes" .IX Header "Funciones pertinentes a todo el catálogo de mensajes" .IP "\fBnew()\fR" 4 .IX Item "new()" Crea un nuevo catálogo de mensajes. Si se introduce un argumento, este será el nombre del fichero \s-1PO\s0 a cargar. .IP "read($)" 4 .IX Item "read($)" Lee un fichero \s-1PO\s0 (cuyo nombre se introduce como argumento). Las entradas anteriormente existentes no se eliminan, las nuevas se añaden al final del catálogo. .IP "write($)" 4 .IX Item "write($)" Escribe el catálogo actual al fichero dado. .IP "write_if_needed($$)" 4 .IX Item "write_if_needed($$)" Al igual que «write», pero si el archivo \s-1PO\s0 o \s-1POT\s0 ya existe, el objeto se escribirá en un archivo temporal para su comparación con el fichero existente, y así determinar si precisa una actualización (esto evita modificar el \s-1POT\s0 para sólo actualizar una línea de referencia o el campo «POT\-Creation\-Date»). .IP "filter($)" 4 .IX Item "filter($)" Esta función extrae un catálogo desde uno existente. Sólo se colocan en el catálogo resultante las entradas que tengan una referencia en el fichero dado. .Sp Esta función analiza su argumento, lo convierte en una definición de una función de Perl, la pasa por «eval» y filtra los campos por los que esta función devuelve verdadero («true»). .Sp A veces me encanta Perl ;) .IP "\fBto_utf8()\fR" 4 .IX Item "to_utf8()" Recodifica los msgtr del \s-1PO\s0 a \s-1UTF\-8.\s0 No hace nada si el juego de caracteres no está especificado en el fichero \s-1PO\s0 (valor «CHARSET»), o si ya está en \s-1UTF\-8\s0 o \s-1ASCII.\s0 .SH "Funciones para usar un catálogo de mensajes para traducciones" .IX Header "Funciones para usar un catálogo de mensajes para traducciones" .IP "gettext($%)" 4 .IX Item "gettext($%)" Solicita la traducción de la cadena dada como argumento en el catálogo actual. La función devuelve la cadena original (sin traducir) si no se ha encontrado la cadena. .Sp Después de la cadena a traducir, puede pasar una serie asociativa («hash») de argumentos adicionales. Aquí están las entradas válidas: .RS 4 .IP "\fBwrap\fR" 4 .IX Item "wrap" Booleano que indica si se puede considerar que los espacios blancos de la cadena son irrelevantes. De ser así, la función canoniza la cadena antes de buscar su traducción, y justifica el resultado. .IP "\fBwrapcol\fR" 4 .IX Item "wrapcol" La columna en la que se debe hacer el salto de línea (por omisión: 76). .RE .RS 4 .RE .IP "\fBstats_get()\fR" 4 .IX Item "stats_get()" Devuelve estadísticas sobre la tasa de aciertos de gettext desde la última vez que se invocó «\fBstats_clear()\fR». Cabe destacar que éstas no son las mismas estadísticas que muestra «msgfmt \-\-statistic». Estas son sobre el uso reciente del fichero \s-1PO,\s0 mientras que msgfmt informa del estado del fichero. Ejemplo de uso: .Sp .Vb 1 \& [algún uso del fichero PO para traducir cosas] \& \& ($percent,$hit,$queries) = $pofile\->stats_get(); \& print "Hasta el momento hemos encontrado traducciones para el $percent\e% ($hit of $queries) de cadenas.\en"; .Ve .IP "\fBstats_clear()\fR" 4 .IX Item "stats_clear()" Limpia las estadísticas de aciertos de gettext. .SH "Funciones para construir un catálogo de mensajes" .IX Header "Funciones para construir un catálogo de mensajes" .IP "push(%)" 4 .IX Item "push(%)" Inserta una nueva entrada al final del catálogo actual. Los argumentos deberían formar una tabla de elementos asociativos («hash»). Las claves válidas son: .RS 4 .IP "\fBmsgid\fR" 4 .IX Item "msgid" La cadena en el idioma original. .IP "\fBmsgstr\fR" 4 .IX Item "msgstr" La traducción. .IP "\fBreference\fR" 4 .IX Item "reference" Una indicación de dónde se encontró la cadena. Ejemplo: «fichero.c:46» (significa en la línea 46 del 'fichero.c'). Puede ser una lista separada por espacios en caso de múltiples apariciones. .IP "\fBcomment\fR" 4 .IX Item "comment" Un comentario añadido aquí manualmente (por los traductores). El formato aquí es libre. .IP "\fBautomatic\fR" 4 .IX Item "automatic" Un comentario que añadió automáticamente el programa de extracción de cadenas. Consulte la opción \fB\-\-add\-comments\fR del programa \fBxgettext\fR para más información. .IP "\fBflags\fR" 4 .IX Item "flags" Lista separada por espacios de todas la marcas («flags») definidas para ésta entrada. .Sp Las marcas válidas son: \fBc\-text\fR, \fBpython-text\fR, \fBlisp-text\fR, \fBelisp-text\fR, \fBlibrep-text\fR, \fBsmalltalk-text\fR, \fBjava-text\fR, \fBawk-text\fR, \fBobject-pascal-text\fR, \fBycp-text\fR, \fBtcl-text\fR, \fBwrap\fR, \fBno-wrap\fR y \fBfuzzy\fR. .Sp Consulte la documentación de gettext para conocer sus significados. .IP "\fBtype\fR" 4 .IX Item "type" Este es principalmente un parámetro interno: se usa cuando se gettextizan documentos. La idea aquí es analizar el original y la traducción en un objeto \s-1PO,\s0 y fusionarlos, usando el msgid de uno como msgid y el msgid del otro como msgstr. Para asegurarnos de que todo va bien, a cada msgid de los objetos \s-1PO\s0 se le da un tipo, basado en su estructura (como «chapt», «sect1», «p» y demás en DocBook). Si los tipos de las cadenas no coinciden, significa que ambos ficheros no tienen la misma estructura, y el proceso devuelve un error. .Sp Esta información se escribe como un comentario automático en el fichero \s-1PO,\s0 ya que informa al traductor del contexto de la cadena a traducir. .IP "\fBwrap\fR" 4 .IX Item "wrap" Booleano que indica si los espacios en blanco se pueden manipular en reformateos cosméticos. Si es verdadero, la cadena se canoniza antes de su uso. .Sp Esta información se escribe en el fichero \s-1PO\s0 usando las marcas \fBwrap\fR o \fBno-wrap\fR. .IP "\fBwrapcol\fR" 4 .IX Item "wrapcol" La columna en la que se debe hacer el salto de línea (por omisión: 76). .Sp Esta información no se escribe en el fichero \s-1PO.\s0 .RE .RS 4 .RE .SH "Funciones varias" .IX Header "Funciones varias" .IP "\fBcount_entries()\fR" 4 .IX Item "count_entries()" Devuelve el número de entradas del catálogo (sin la cabecera). .IP "\fBcount_entries_doc()\fR" 4 .IX Item "count_entries_doc()" Devuelve el número de entradas del documento. Si una cadena aparece varias veces en el documento, se contará varias veces. .IP "msgid($)" 4 .IX Item "msgid($)" Devuelve el msgid con el número dado. .IP "msgid_doc($)" 4 .IX Item "msgid_doc($)" Devuelve el msgid y su posición en el documento. .IP "type_doc($)" 4 .IX Item "type_doc($)" Returns the type of the msgid with the given position in the document. This is probably only useful to gettextization, and it's stored separately from {$msgid}{'type'} because the later location may be overwritten by another type when the \f(CW$msgid\fR is duplicated in the master document. .IP "\fBget_charset()\fR" 4 .IX Item "get_charset()" Devuelve el juego de caracteres especificado en la cabecera \s-1PO.\s0 Si no se le ha dado valor, devuelve «UTF\-8». .IP "set_charset($)" 4 .IX Item "set_charset($)" Esto define el juego de caracteres de la cabecera \s-1PO\s0 con el valor especificado en su primer argumento. Si nunca invoca esta función (y no se carga ningún fichero con un juego de caracteres especificado), el valor predefinido es «UTF\-8». Este valor no cambia el comportamiento del módulo, simplemente se usa para llenar el campo de la cabecera, y para devolverlo en «\fBget_charset()\fR». .SH "AUTORES" .IX Header "AUTORES" .Vb 2 \& Denis Barbier \& Martin Quinson (mquinson#debian.org) .Ve .SH "TRADUCCION" .IX Header "TRADUCCION" .Vb 2 \& Jordi Vilalta \& Omar Campagne .Ve