Provided by: po4a_0.41-1ubuntu1_all bug

NOMBRE

       po4a-runtime - po4a y traducción gettext en tiempo de ejecución sin
       Autotools

Introducción

       Gracias a po4a-build, po4a permite también añadir las traducciones de
       mensajes de salida de scripts en tiempo de ejecución usando gettext.
       Ademas, se hace sin necesidad de integrar Autotools y el típico proceso
       ./configure en el paquete.

       Usando secciones de ejemplo de Makefile, los paquetes pueden usar
       intltool con el mínimo esfuerzo.

Diseño

       La documentación de la traducción NO debería usar el mismo directorio
       po/ que las traducciones de mensajes en tiempo de ejecución. Aunque la
       traducción de mensajes en tiempo de ejecución puede usar otros
       directorios aparte de po/, habitualmente es más sencillo seguir el uso
       convencional.

Varios lenguajes

       Sólo un apunte acerca de paquetes que usan scripts en varios lenguajes
       de programación. Una mezcla común es Perl y el intérprete de consola.
       Nota: gettext se equivocará y omitirá cadenas de uno u otro lenguaje, a
       menos que use extensiones de fichero pare el lenguaje menos
       problemático.

       Al usar varios lenguajes, experimente con varias configuraciones en
       po/Makevars hasta que obtenga las cadenas necesarias en el fichero POT.

       Especificar dos lenguajes en po/Makevars puede ser problemático. En
       lugar de:

        # No haga esto:
        XGETTEXT_OPTIONS = -L Perl -L Shell --from-code=iso-8859-1

       Considere renombrar (o proporcionar uno varios enlaces simbólicos) para
       todos los ficheros de uno de los lenguajes implicados, y omita las
       opciones de «-L» explicitas. La extensión de fichero solo tiene que
       existir mientras se procesa /POTFILES.in

       La opción «--keywords» también puede ser de utilidad. Consulte la
       documentación de xgettext.

Llenar «po/»

       Finalizando, tiene que crear su directorio po/ de nivel superior y
       después usar los ficheros de ejemplo en /usr/share/doc/po4a/examples/
       para llenarlo.

       LINGUAS
           Este campo debe estar presente, incluso vacío. Consiste de una
           lista de traducciones, cada línea que no empiece con un debe
           coincidir con un fichero PO ya existente. Por ejemplo, si LINGUAS
           contiene una sola línea, «fr», debe tener un fichero fr.po junto
           con el fichero LINGUAS.

            $ cat po/LINGUAS
            cs
            de
            fr
            $

           Por convención, el fichero LINGUAS está organizado alfabéticamente,
           pero este es un proceso manual.

       POTFILES.in
           La lista de ficheros que contienen mensajes que se traducirán en
           tiempo de ejecución, por ejemplo, sus scripts. De emplear el
           directorio po/ de nivel superior, las rutas tendrán que ser
           relativas al directorio de nivel superior, no al mismo directorio
           po/.

            $ ls -l
            mi_script.pl
            otro.pl
            foo/compatibilidad.pl
            po/
            po/POTFILES.in
            $ cat po/POTFILES.in
            mi_script.pl
            otro.pl
            foo/compatibilidad.pl
            $

           Observe que se menciona explícitamente que los scripts pueden
           contener cadenas para la traducción de mensajes de documentación y
           también de mensajes en tiempo de ejecución. Por ejemplo, usar
           funciones de gettext para los mensajes en tiempo de ejecución y el
           contenido integrado de documentación POD. Por ello, no es problema
           si tiene el mismo fichero listado en po/POTFILES.in y
           doc/po4a-build.conf.

       Makevars-perl.example
           Si sus scripts están escritos en Perl, copie este fichero de
           ejemplo como po/Makevars y configúrelo según sus necesidades.

       Makevars-shell.example
           Si sus scripts son de intérprete de órdenes, copie este fichero de
           ejemplo como po/Makevars y configúrelo según sus necesidades.

       po4a-build.make
           Copie este fichero de ejemplo como po/Makefile. No debería
           necesitar edición, pero puede que desee mantenerlo actualizado en
           relación a /usr/share/doc/po4a/examples/po4a-build.make ya que
           puede que se necesite actualizar de una publicación de po4a a otra
           a medida que la compatibilidad subyacente con intltools cambia. (El
           fichero en sí mismo se generó de otro proyecto usando Autotools e
           intltool.)

Construir

       Necesita añadir estas partes a su «Makefile» de nivel superior, o a
       cualquier otro método que use para preparar las fuentes para su
       distribución.

        clean:
               $(MAKE) -C po/ clean

        install:
               $(MAKE) -C po/ install DESTDIR=$(DESTDIR)

        dist:
               $(MAKE) -C po/ pot

       (En un proyecto con Autotools, esto ocurre automáticamente si añade po
       al valor de <SUBDIRS> en <Makefile.am>.)

Actualización

       La traducción en tiempo de ejecución no es tan sencilla como con
       po4a-build, ya que necesita editar po/LINGUAS para añadir una nueva
       traducción. Pero aparte de esto, actualizar traducciones es tan fácil
       como reemplazar el fichero PO relevante con la nueva versión.

       Dependiendo de como prepare su fichero tar de fuentes, puede que
       también necesite listar los nuevos ficheros PO en el fichero MANIFEST o
       añadir el o los scripts que preparan el archivo tar (esto también
       afecta a po4a-build).

       Puede borrar todo fichero *.mo o *.gmo del directorio po/.

Copyright

       Aunque los ficheros de ejemplo sean parte del proyecto po4a, es libre
       de usar, modificar o distribuir los mismos en sus proyectos sin
       necesidad de mencionar po4a o incluir al equipo de po4a en sus notas de
       derechos de autor, al igual que con otras herramientas de compilación
       como el mismo Automake. No pondremos objeciones si desea mencionar po4a
       en su proyecto.

AUTORES

        Neil Williams <linux@codehelp.co.uk>