LOCALE::PO4A::PO.3PM(1) User Contributed Perl Documentation NOMBRE Locale::Po4a::Po - Modulo para la manipulacion de ficheros PO SINOPSIS use Locale::Po4a::Po; my $pofile=Locale::Po4a::Po->new(); # Leer el fichero PO $pofile->read('fichero.po'); # Anadir una entrada $pofile->push('msgid' => 'Hello', 'msgstr' => 'hola', 'flags' => "wrap", 'reference'=>'file.c:46'); # Extraer una traduccion $pofile->gettext("Hello"); # devuelve 'Hola' # Escribir el resultado en un fichero $pofile->write('otrofichero.po'); DESCRIPCION Locale::Po4a::Po es un modulo que permite manipular catalogos de mensajes. Con el puede leer y escribir desde/a un fichero (cuya extension es a menudo po), puede crear nuevas entradas sobre en el momento o pedir la traduccion de una cadena. Para una descripcion mas completa de los catalogos de mensajes en formato PO y su uso, consulte la documentacion del programa gettext (nodo "`PO Files"'). Este modulo es parte del proyecto po4a, cuyo objetivo es usar ficheros PO (disenados originalmente para facilitar la traduccion de mensajes de programa) para traducir de todo, incluyendo documentacion (paginas de manual, manuales info), descripciones de paquetes, plantillas debconf, y cualquier cosa que se pueda beneficiar de esto. OPCIONES ACEPTADAS POR ESTE MODULO --porefs type Define el forma de referencia: El argumento type puede ser never para no generar ninguna referencia, file para solo especificar el fichero el numero de linea, counter para sustituir el numero de linea con un recuento ascendente, y full para incluir referencias completas (predefinido: full). --wrap-po no|newlines|number (por omision: 76) Especifique como se debe ajustar el archivo po. Esto permite elegir entre archivos que estan bien ajustados pero que podrian generar conflictos de git o archivos que son mas faciles de manejar automaticamente, pero mas dificiles de leer para los humanos. Historicamente, la suite gettext ha reformateado los archivos po en la columna 77 por razones cosmeticas. Esta opcion especifica el comportamiento de po4a. Si se establece en un valor numerico, po4a ajustara el archivo po despues de esta columna y despues de nuevas lineas en el contenido. Si se establece en newlines, po4a solo dividira los msgid y msgstr despues de nuevas lineas en el contenido. Si se establece en no, po4a no ajustara el archivo po en absoluto. Los comentarios de referencia siempre son ajustados por las herramientas gettext que usamos internamente. Tenga en cuenta que esta opcion no tiene ningun impacto en como se ajustan msgid y msgstr, es decir, en como se agregan nuevas lineas al contenido de estas cadenas. --msgid-bugs-address correo-e@direccion Define el destinatario de los informes de fallo en los msgid. Por omision, los ficheros POT creados no tienen el campo <>. --copyright-holder cadena Define el titula de los derechos de reproduccion en la cabecera del POT. El valor predefinido es <> --package-name string Define el nombre del paquete en la cabecera del POT. El valor por omision es <>. --package-version string Define la version del paquete en la cabecera del POT. El valor por omision es <>. Funciones pertinentes a todo el catalogo de mensajes new() Crea un nuevo catalogo de mensajes. Si se introduce un argumento, este sera el nombre del fichero PO a cargar. read($) Lee un fichero PO (cuyo nombre se introduce como argumento). Las entradas anteriormente existentes no se eliminan, las nuevas se anaden al final del catalogo. write($) Escribe el catalogo actual al fichero dado. write_if_needed($$) Al igual que <>, pero si el archivo PO o POT ya existe, el objeto se escribira en un archivo temporal para su comparacion con el fichero existente, y asi determinar si precisa una actualizacion (esto evita modificar el POT para solo actualizar una linea de referencia o el campo <>). filter($) Esta funcion extrae un catalogo desde uno existente. Solo se colocan en el catalogo resultante las entradas que tengan una referencia en el fichero dado. Esta funcion analiza su argumento, lo convierte en una definicion de una funcion de Perl, la pasa por <> y filtra los campos por los que esta funcion devuelve verdadero (<>). A veces me encanta Perl ;) Funciones para usar un catalogo de mensajes para traducciones gettext($%) Solicita la traduccion de la cadena dada como argumento en el catalogo actual. La funcion devuelve la cadena original (sin traducir) si no se ha encontrado la cadena. Despues de la cadena a traducir, puede pasar una serie asociativa (<>) de argumentos adicionales. Aqui estan las entradas validas: wrap Booleano que indica si se puede considerar que los espacios blancos de la cadena son irrelevantes. De ser asi, la funcion canoniza la cadena antes de buscar su traduccion, y justifica el resultado. wrapcol La columna en la que se debe hacer el salto de linea (por omision: 76). stats_get() Devuelve estadisticas sobre la tasa de aciertos de gettext desde la ultima vez que se invoco <>. Cabe destacar que estas no son las mismas estadisticas que muestra <>. Estas son sobre el uso reciente del fichero PO, mientras que msgfmt informa del estado del fichero. Ejemplo de uso: [algun uso del fichero PO para traducir cosas] ($percent,$hit,$queries) = $pofile->stats_get(); print "Hasta el momento hemos encontrado traducciones para el $percent\% ($hit of $queries) de cadenas.\n"; stats_clear() Limpia las estadisticas de aciertos de gettext. Funciones para construir un catalogo de mensajes push(%) Inserta una nueva entrada al final del catalogo actual. Los argumentos deberian formar una tabla de elementos asociativos (<>). Las claves validas son: msgid La cadena en el idioma original. msgstr La traduccion. reference Una indicacion de donde se encontro la cadena. Ejemplo: <> (significa en la linea 46 del 'fichero.c'). Puede ser una lista separada por espacios en caso de multiples apariciones. comment Un comentario anadido aqui manualmente (por los traductores). El formato aqui es libre. automatic Un comentario que anadio automaticamente el programa de extraccion de cadenas. Consulte la opcion --add-comments del programa xgettext para mas informacion. flags Lista separada por espacios de todas la marcas (<>) definidas para esta entrada. Las marcas validas son: c-text, python-text, lisp-text, elisp- text, librep-text, smalltalk-text, java-text, awk-text, object- pascal-text, ycp-text, tcl-text, wrap, no-wrap y fuzzy. Consulte la documentacion de gettext para conocer sus significados. type Este es principalmente un parametro interno: se usa cuando se gettextizan documentos. La idea aqui es analizar el original y la traduccion en un objeto PO, 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 PO se le da un tipo, basado en su estructura (como <>, <>, <

> y demas 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. Esta informacion se escribe como un comentario automatico en el fichero PO, ya que informa al traductor del contexto de la cadena a traducir. wrap Booleano que indica si los espacios en blanco se pueden manipular en reformateos cosmeticos. Si es verdadero, la cadena se canoniza antes de su uso. Esta informacion se escribe en el fichero PO usando las marcas wrap o no-wrap. wrapcol ignorado; la clave se conserva por motivos de compatibilidad con versiones anteriores. Otras funciones count_entries() Devuelve el numero de entradas del catalogo (sin la cabecera). count_entries_doc() Devuelve el numero de entradas del documento. Si una cadena aparece varias veces en el documento, se contara varias veces. msgid($) Devuelve el msgid con el numero dado. msgid_doc($) Devuelve el msgid y su posicion en el documento. type_doc($) Devuelve el tipo del msgid con la posicion dada en el documento. Esto es probablemente solo util para gettextization, y se almacena por separado de {$msgid}{'type'} porque la ubicacion posterior puede ser sobrescrita por otro tipo cuando el $msgid se duplica en el documento maestro. get_charset() Devuelve el juego de caracteres especificado en la cabecera PO. Si no se le ha dado valor, devuelve <>. AUTORES Denis Barbier Martin Quinson (mquinson#debian.org) TRADUCCION Jordi Vilalta Omar Campagne perl v5.38.2 2024-06-26 LOCALE::PO4A::PO.3PM(1)