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>