Buenos dias. Tengo un problema con un programa que estoy haciendo y me gustaria saber si alguien me puede ayudar.
Os cuento, necesito hacer una aplicación en la que pueda tener los textos traducidos en varios idiomas. Busque en internet y encontre que se puede hacer con gettext, por lo que intente hacer un programa sencillo.
Os dejo el codigo y los pasos que he seguido.
1º Me bajo los drives necesarios para tener gettext en windows.
2º Creo una carpeta para dejar todo lo referente a gettext (C:\gettext)
3º Creo un programa llamado programita.py con el siguiente codigo:
import gettext
gettext.textdomain("programita")
gettext.bindtextdomain("programita","C:\gettext\mo ")
print gettext.gettext("Hellooo")
4º Me meto en el directorio C:\gettext y creo la carpeta mo, luego la carpeta es y por ultimo la carpeta LC_MESSAGES de tal modo que la ruta seria: C:\gettext\mo\es\LC_MESSAGES
5º Abro un terminal con cmd, me voy al directorio C:\gettext\bin y ejecuto las siguientes instrucciones:
a)xgettext --language=Python -o messages.pot programita.py
b)msginit -i messages.pot -o es.po (Porque quiero crear el idioma español)
6º Edito el archivo es.po, pongo el charset a UTF-8 y luego introduzco la cadena a traducir de forma que me queda:
#: programita.py:6
msgid "Hellooo"
msgstr "Hola"
7º Una vez guardado el archivo, vuelvo al cmd y ejecuto: msgfmt es.po -o mo\es\LC_MESSAGES\programita.mo
En teoria, con esto seria suficiente, con ejecutar el programa me tendria que mostrar "Hola" pero haga lo que haga siempre me muestra "Hellooo" y no entiendo por que.
No se si he hecho algo mal del codigo, si las rutas estan mal o que, pero ya no se que mas modificar.
Si alguien me puede ayudar, le estaré muy agradecido.
Saludos y gracias.