[Python-es] Traducir correctamente aplicación con gettext bajo windows.

manuelcortez manuelcortez00 en gmail.com
Sab Mayo 4 20:14:18 CEST 2013


Muchas gracias por la respuesta. He hecho lo que me has indicado, y todo 
ha funcionado bien. Ahora con solo apuntar a la ruta relativa donde 
están las locales todo funciona. De nuevo gracias. Saludos.

El 03/05/2013 01:29 p.m., Chema Cortes escribió:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> El 02/05/13 08:15, manuelcortez escribió:
>> Hola a todos,
>>
>> Ahora escribo por aquí para pedir un poco de ayuda porque tengo un
>> problema con la traducción de una aplicación en Python, que se
>> supone debería funcionar bajo un entorno Windows. Paso a explicar.
>>
>> Hace dos o tres meces, para un centro al que colaboro, empecé a
>> hacer una aplicación de asistencia para practicar la dactilografía
>> [escritura en el teclado con los dedos de las dos manos]. Hoy
>> intenté ver si podía traducirlo, porque en principio solo lo
>> escribí pensando en el español. La aplicación es multiplataforma,
>> aunque tiene variaciones (en Windows usé PyGtk2.24 y en GNU/Linux
>> Gtk+3 con GObject). El problema, es que nada de lo que he hecho
>> funciona en lo más mínimo. Se supone que las traducciones están
>> creadas, y se encuentran en la carpeta locale de la aplicación.
>> Solo traduje un mensaje, para ver si me funcionaba, y parece que no
>> hay caso.
>>
>> Hice lo siguiente, en este orden: Primero, en la parte de la
>> aplicación que despliega la interfaz gráfica, puse estas líneas,
>> según leí en esta dirección [1]: import gettext
>> gettext.textdomain("app") gettext.bindtextdomain("app",
>> "./locale") _ = gettext.gettext
>>
>> Luego, en uno de los mensajes (realmente fue uno bastante al azar,
>> el primero que vi), intenté probar esto, haciendo _("message"), con
>> lo que según entiendo, se marcan las cadenas para traducción.
>>
>> Después usé un script por línea de comandos que descargué de este
>> proyecto [2], el cual modifiqué para que me generara la plantilla
>> de traducción para el programa con PyGettext. Se generó bien.
>> Luego, el archivo para traducir ese mensaje al español lo hice con
>> este comando: msginit -i messages.pot -o es.po Igual que el
>> anterior, todo fue sin problemas. Eso sí, por motivos que aún
>> desconozco, tuve que establecer la codificación del archivo como
>> cp1252 porque así toma las cadenas el programa. Una vez todo estuvo
>> listo, y el único mensaje traducido, con esto creé el archivo que
>> la máquina ha de leer: msgfmt es.po -o
>> locale/es/LC_MESSAGES/app.mo
>>
>> Coloco este directorio en la misma carpeta donde están los demás
>> archivos de la aplicación, intento abrirla, pero sale el mensaje
>> en inglés, como si es que no existiera la traducción. El windows
>> está configurado en español, y no sé exactamente qué de todo esto
>> estoy haciendo mal para que no funcione como se espera.
>>
>> Ya intenté también copiar el directorio es como es_ES y es_MX,
>> incluso los tres al mismo tiempo, y en la llamada a
>> gettext.bindtextdomain() cambiar de "./locale" a solo "locale" y a
>> "/locale", pero nada.
>>
>> ¿Alguna idea?
>
> Es muy probable que en tu windows no estén asignadas las variables de
> entorno que indican el lenguaje. Puedes usar el siguiente script para
> configurar el entorno antes de ejecutar tu programa:
>
>    https://launchpad.net/gettext-py-windows
>
> Basta añadir por delante de las llamadas a gettext lo siguiente:
>
> import gettext_windows
> gettext_windows.setup_env()
>
>
>
>
>
>
> - -- 
> Hyperreals *R: http://ch3m4.org/blog
> Quarks, bits y otras criaturas infinitesimales
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.11 (GNU/Linux)
> Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
>
> iQEcBAEBAgAGBQJRhAHjAAoJEFdWyBWwhL4FxHQH/2BZEH+rv1v1JEoVM7+2Pk1Q
> O+xpPY1c+Au4VBSVGV96erwb4fKOnwqKikIDOgWDYQK1JBD+27sm/tET2U47KjDA
> 45Il8sd1BASSHu+32K2ZH5b1n8YEbizmVzVQn1z8y8E9zfaPUl0YX/+SFeRG7Yaq
> 1CcY7tLaSgOK+HMsXIad/GlTU/xwWovhfbSLigXqtZfGsW5YILmQn7CeO548shZd
> CRToS3p+MhLP3eslbf5QE4i5cC+4bqBtkcWX8yRzwqtZWLwdq8VB5ZNt7j1Gz5BR
> SqifN9x5t7yfylVDvz2a89hCfYFWXt3xofQ+f6KHhmSfZB44vsuwThKoLKmHoTA=
> =7sQ/
> -----END PGP SIGNATURE-----
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/



Más información sobre la lista de distribución Python-es