Pasos a dar para soportar un nuevo idioma
-----------------------------------------
Supongamos que vamos a soportar el idioma idioma Portugués (pt)
- Traducir las plantillas de $prefix/templates/en/*, aunque le resulte más útil traducir $prefix/templates/es/* dada la similitud de los idiomas.
- Seleccionar los ficheros que tienen cadenas a traducir, es decir, aquellos que tienen _("...") en el código fuente.
$ find $prefix -exec grep -l "_(" {} \; > $prefix/messages/pygettext.files
- Quitar todos los ficheros de pygettext.files que no correspondan, *.pyc *.py~...
- Generar el catálogo, para ello se debe ejecutar:
$ cd $prefix/messages
$ $prefix/bin/pygettext.py -v `cat pygettext.files`
$ mkdir -p pt/LC_MESSAGES
#
# No sería mala idea (en este caso) traducir README.es a README.pt :-)
#
$ mv messages.pot pt/LC_MESSAGES/catalog.pt
- traducir catalog.pt
- Generar mailman.mo:
$ cd $prefix/messages/pt/LC_MESSAGES
$ msgfmt -o mailman.mo catalog.pt
- Insertar en Defaults.py una línea en la variable LC_DESCRIPTIONS:
LC_DESCRIPTIONS = { 'es': [_("Spanish (Spain)"), 'iso-8859-1'],
'pt': [_("Portuguese"), 'iso-8859-1'], <----
'en': [_("English (USA)"), 'us-ascii']
}
- Almacenar las plantillas del nuevo idioma en $prefix/templates/pt
- A partir de ahora podemos añadir a una lista el nuevo idioma:
$ $prefix/bin/addlang -l <lista> pt
Pasos para sincronizar el catálogo
----------------------------------
- Generar el nuevo catálogo tal y como se describe antes y compararlo con el
que ya tenemos. Para compararlo tendremos que ejecutar:
$ cd $prefix/messages
$ $prefix/bin/pygettext.py -v `cat pygettext.files`
$ mv messages.pot pt/LC_MESSAGES
$ cd pt/LC_MESSAGES
# Hay otra utilidad relacionada que hace los mismo: 'msgmerge'
$ tupdate messages.pot catalog.pt > tmp
# Los mensajes antiguos quedan comentados al final del fichero tmp
# Los mensajes nuevos quedan sin traducir.
$ vi tmp
# Traducir los mensajes nuevos
$ mv tmp catalog.pt; rm messages.pot
$ msgfmt -o mailman.mo catalog.pt
Para donar la traducción de un nuevo idioma
-------------------------------------------
Apreciamos la donación de cualquier traducción al proyecto mailman,
de manera que cualquiera pueda beneficiarse de tu esfuerzo. Por
supuesto, cualquier labor realizada será reconocida públicamente,
dentro de la documentación de Mailman. Esto es lo que hay que hacer
para donar cualquier traducción, ya sea la primera vez que se haga o
cualquier actualización posterior.
Lo mejor que se puede hacer es mandar un fichero en formato 'tar' a
<barry@zope.com> que se pueda desempaquetar en la parte superior
donde empieza la jerarquía de directorios del CVS.
Tu fichero 'tar' debería tener dos directorios, donde están contenidos
los ficheros pertenecientes a la traducción del lenguaje 'xx':
templates/xx
messages/xx
En templates/xx deberían estar las plantillas, todos los ficheros .txt y
.html traducidas en tu idioma, a partir de las plantillas en Inglés (que
siempre son las copias primarias).
En messages/xx solo debería haber un único directorio llamado
LC_MESSAGES y dentro de él un fichero llamado mailman.po, que es el
catálogo perteneciente a tu idioma. No envíes el fichero mailman.mo
porque de eso me encargo yo.
Prácticamente eso es todo. Si necesitas incluir un fichero README, por
favor nómbralo como README.xx y mételo en el directorio messages/xx.
README.xx debería estar en tu idioma.
Puedes mandarme el fichero 'tar' por correo electrónico. Si es la
primera vez que mandas la traducción, por favor, dime que debo poner en
la invocación de add_language() dentro del fichero Defaults.py para
incorporar tu idioma.