Provided by:
po4a_0.41-1ubuntu1_all 
NOMBRE
po4a-runtime - po4a y traduccion gettext en tiempo de ejecucion sin
Autotools
Introducci'on
Gracias a po4a-build, po4a permite tambien anadir las traducciones de
mensajes de salida de scripts en tiempo de ejecucion usando gettext.
Ademas, se hace sin necesidad de integrar Autotools y el tipico proceso
./configure en el paquete.
Usando secciones de ejemplo de Makefile, los paquetes pueden usar
intltool con el minimo esfuerzo.
Dise~no
La documentacion de la traduccion NO deberia usar el mismo directorio
po/ que las traducciones de mensajes en tiempo de ejecucion. Aunque la
traduccion de mensajes en tiempo de ejecucion puede usar otros
directorios aparte de po/, habitualmente es mas sencillo seguir el uso
convencional.
Varios lenguajes
Solo un apunte acerca de paquetes que usan scripts en varios lenguajes
de programacion. Una mezcla comun es Perl y el interprete de consola.
Nota: gettext se equivocara y omitira cadenas de uno u otro lenguaje, a
menos que use extensiones de fichero pare el lenguaje menos
problematico.
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 problematico. En
lugar de:
# No haga esto:
XGETTEXT_OPTIONS = -L Perl -L Shell --from-code=iso-8859-1
Considere renombrar (o proporcionar uno varios enlaces simbolicos) para
todos los ficheros de uno de los lenguajes implicados, y omita las
opciones de <<-L>> explicitas. La extension de fichero solo tiene que
existir mientras se procesa /POTFILES.in
La opcion <<--keywords>> tambien puede ser de utilidad. Consulte la
documentacion de xgettext.
Llenar <<po/>>
Finalizando, tiene que crear su directorio po/ de nivel superior y
despues usar los ficheros de ejemplo en /usr/share/doc/po4a/examples/
para llenarlo.
LINGUAS
Este campo debe estar presente, incluso vacio. Consiste de una
lista de traducciones, cada linea que no empiece con un debe
coincidir con un fichero PO ya existente. Por ejemplo, si LINGUAS
contiene una sola linea, <<fr>>, debe tener un fichero fr.po junto
con el fichero LINGUAS.
$ cat po/LINGUAS
cs
de
fr
$
Por convencion, el fichero LINGUAS esta organizado alfabeticamente,
pero este es un proceso manual.
POTFILES.in
La lista de ficheros que contienen mensajes que se traduciran en
tiempo de ejecucion, por ejemplo, sus scripts. De emplear el
directorio po/ de nivel superior, las rutas tendran 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 explicitamente que los scripts pueden
contener cadenas para la traduccion de mensajes de documentacion y
tambien de mensajes en tiempo de ejecucion. Por ejemplo, usar
funciones de gettext para los mensajes en tiempo de ejecucion y el
contenido integrado de documentacion 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 estan escritos en Perl, copie este fichero de
ejemplo como po/Makevars y configurelo segun sus necesidades.
Makevars-shell.example
Si sus scripts son de interprete de ordenes, copie este fichero de
ejemplo como po/Makevars y configurelo segun sus necesidades.
po4a-build.make
Copie este fichero de ejemplo como po/Makefile. No deberia
necesitar edicion, pero puede que desee mantenerlo actualizado en
relacion a /usr/share/doc/po4a/examples/po4a-build.make ya que
puede que se necesite actualizar de una publicacion de po4a a otra
a medida que la compatibilidad subyacente con intltools cambia. (El
fichero en si mismo se genero de otro proyecto usando Autotools e
intltool.)
Construir
Necesita anadir estas partes a su <<Makefile>> de nivel superior, o a
cualquier otro metodo que use para preparar las fuentes para su
distribucion.
clean:
$(MAKE) -C po/ clean
install:
$(MAKE) -C po/ install DESTDIR=$(DESTDIR)
dist:
$(MAKE) -C po/ pot
(En un proyecto con Autotools, esto ocurre automaticamente si anade po
al valor de <SUBDIRS> en <Makefile.am>.)
Actualizaci'on
La traduccion en tiempo de ejecucion no es tan sencilla como con
po4a-build, ya que necesita editar po/LINGUAS para anadir una nueva
traduccion. Pero aparte de esto, actualizar traducciones es tan facil
como reemplazar el fichero PO relevante con la nueva version.
Dependiendo de como prepare su fichero tar de fuentes, puede que
tambien necesite listar los nuevos ficheros PO en el fichero MANIFEST o
anadir el o los scripts que preparan el archivo tar (esto tambien
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 compilacion
como el mismo Automake. No pondremos objeciones si desea mencionar po4a
en su proyecto.
AUTORES
Neil Williams <linux@codehelp.co.uk>