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