Provided by: po4a_0.47-2_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

       The --keywords option can also be useful - see the xgettext(1) documentation.

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
           Must exist, even if empty. Consists of a list of translations - each line not starting
           with a '#' must match an existing PO file.  E.g. if LINGUAS contains a single line,
           'fr', an fr.po file must exist alongside the LINGUAS file.

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

TRADUCCION

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