Provided by: po4a_0.69-1_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 (nodo "`PO Files"').

       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 type
           Define  el forma de referencia: El argumento type puede ser never para no generar ninguna referencia,
           file para solo especificar el fichero el número de línea, counter para sustituir el número  de  línea
           con un recuento ascendente, y full para incluir referencias completas (predefinido: full).

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

           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  newlines,  po4a  solo  dividirá  los  msgid  y  msgstr  después de nuevas líneas en el
           contenido. Si se establece en no, po4a no ajustará el archivo po  en  absoluto.  Los  comentarios  de
           referencia siempre son ajustados por las herramientas gettext que usamos internamente.

           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.

       --msgid-bugs-address correo-e@direccion
           Define el destinatario de los informes de fallo en los msgid. Por omisión, los ficheros  POT  creados
           no tienen el campo «Report-Msgid-Bugs-To».

       --copyright-holder cadena
           Define  el  titula  de  los  derechos de reproducción en la cabecera del POT. El valor predefinido es
           «Free Software Foundation, Inc.»

       --package-name string
           Define el nombre del paquete en la cabecera del POT. El valor por omisión es «PACKAGE».

       --package-version string
           Define la versión del paquete en la cabecera del POT. El valor por omisión es «VERSION».

Funciones pertinentes a todo el catálogo de mensajes

       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 archivo PO o POT 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  POT  para  sólo  actualizar  una  línea  de  referencia  o  el  campo
           «POT-Creation-Date»).

       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.

       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 $msgid is duplicated in the master document.

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

       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 «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 «get_charset()».

AUTORES

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

TRADUCCION

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

Herramientas de po4a                               2023-01-03                              Locale::Po4a::Po(3pm)