Provided by: po4a_0.41-1ubuntu1_all bug

NOMBRE

       Locale::Po4a::Po - Módulo para la manipulación de ficheros PO

SINOPSIS

           use Locale::Po4a::Po;
           my $pofile=Locale::Po4a::Po->new();

           # Leer el fichero PO
           $pofile->read('fichero.po');

           # Añadir una entrada
           $pofile->push('msgid' => 'Hello', 'msgstr' => 'hola',
                         'flags' => "wrap", 'reference'=>'file.c:46');

           # Extraer una traducción
           $pofile->gettext("Hello"); # devuelve 'Hola'

           # Escribir el resultado en un fichero
           $pofile->write('otrofichero.po');

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 po), puede crear nuevas entradas sobre en el
       momento o pedir la traducción de una cadena.

       Para una descripción más completa de los catálogos de mensajes en
       formato PO y su uso, consulte la documentación del programa gettext.

       Este módulo es parte del proyecto PO4A, cuyo objetivo es usar ficheros
       PO (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.

OPCIONES ACEPTADAS POR ESTE MODULO

       porefs
           Esto especifica el formato de referencia. Puede usar none, para no
           producir ninguna referencia, noline para no especificar el número
           de la línea, y full para incluir referencias completas.

Funciones sobre el catálogo de mensajes entero

       new()
           Crea un nuevo catálogo de mensajes. Si se introduce un argumento,
           este será 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
           añaden al final del catálogo.

       write($)
           Escribe el catálogo actual al fichero dado.

       write_if_needed($$)
           Al igual que «write», pero si el fichero PO o POT ya existe, el
           objeto se escribirá en un fichero temporal para su comparación con
           el fichero existente, y así determinar si precisa una actualización
           (esto evita modificar el POT para sólo actualizar una línea de
           referencia o el campo «POT-Creation-Date»)

       gettextize($$)
           Esta función produce un catálogo de mensajes traducidos desde dos
           catálogos, el original y su traducción. Este proceso se describe en
           la sección de po4a(7) Gettextizacin: cmo funciona?.

       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.

           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»).

           A veces me encanta Perl ;)

       to_utf8()
           Recodifica los msgtr del PO a UTF-8. No hace nada si el juego de
           caracteres no está especificado en el fichero PO (valor «CHARSET»),
           o si ya está en UTF-8 o ASCII.

Funciones para usar un catálogo de mensajes para traducciones

       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.

           Después de la cadena a traducir, puede pasar una serie asociativa
           («hash») de argumentos adicionales. Aquí están las entradas
           válidas:

           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.

           wrapcol
               La columna en la que se debe hacer el salto de línea (por
               omisión: 76).

       stats_get()
           Devuelve estadísticas sobre la tasa de aciertos de gettext desde la
           última vez que se invocó «stats_clear()». Cabe destacar que éstas
           no son las mismas estadísticas que muestra «msgfmt --statistic».
           Estas son sobre el uso reciente del fichero PO, mientras que msgfmt
           informa del estado del fichero. Ejemplo de uso:

               [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\%  ($hit of $queries) de cadenas.\n";

       stats_clear()
           Limpia las estadísticas de aciertos de gettext.

Funciones para construir un catálogo de mensajes

       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:

           msgid
               La cadena en el idioma original.

           msgstr
               La traducción.

           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.

           comment
               Un comentario añadido aquí manualmente (por los traductores).
               El formato aquí es libre.

           automatic
               Un comentario que añadió automáticamente el programa de
               extracción de cadenas. Consulte la opción --add-comments del
               programa xgettext para más información.

           flags
               Lista separada por espacios de todas la marcas («flags»)
               definidas para ésta entrada.

               Las marcas válidas 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 documentación de gettext para conocer sus
               significados.

           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 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 «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.

               Esta información se escribe como un comentario automático 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 cosméticos. Si es verdadero, la cadena
               se canoniza antes de su uso.

               Esta información se escribe en el fichero PO usando las marcas
               wrap o no-wrap.

           wrapcol
               La columna en la que se debe hacer el salto de línea (por
               omisión: 76).

               Esta información no se escribe en el fichero PO.

Funciones varias

       count_entries()
           Devuelve el número de entradas del catálogo (sin la cabecera)

       count_entries_doc()
           Devuelve el número de entradas del documento. Si una cadena aparece
           varias veces en el documento, se contará varias veces.

       msgid($)
           Devuelve el msgid con el número dado.

       msgid_doc($)
           Devuelve el msgid y su posición en el documento.

       get_charset()
           Devuelve el juego de caracteres especificado en la cabecera PO. Si
           no se le ha dado valor, devuelve «CHARSET».

       set_charset($)
           Esto define el juego de caracteres de la cabecera PO 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 «CHARSET». Este valor no
           cambia el comportamiento del módulo, simplemente se usa para llenar
           el campo de la cabecera, y para devolverlo en «get_charset()».

AUTORES

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