Traduciendo a mi manera
Yo, en vez de intentar terminar las cosas que tengo empezadas, prefiero añadir nuevas funcionalidades al proyecto que a su vez se suman a las cosas que se quedan a medias. Así soy yo xD
Bueno, esta vez he conseguido empezarla y terminarla, más o menos. Aquí ando intentando internacionalizar el proyecto. He estado leyendo un rato sobre gettext pero la verdad es que el tema de los locale y demás me parece un coñazo, así que he decidido montarme mi mini sistema cogiendo algunas ideas de allí y de aquí.
Se me ocurrió hacerlo porque el comando xgettext no me estaba cogiendo las cadenas del código, y mejor que darle más vueltas, pues hacerlo uno mismo. Primero he hecho un script en Python (del que no sé apenas nada, pero es muy fácil y en un rato tienes lo que sea andando) que me saque del código fuente las cadenas indicadas para ser traducidas (el script está aquí), que son de la forma _("cadena"). Este script genera un archivo en formato JSON con un par “cadena original : cadena traducida” con todas las cadenas leídas, para que el traductor pueda coger y traducirlas al idioma que sea.
Luego en C++ he implementado la función _() usando boost::property_tree, que trae un parser para JSON. Se parsea el fichero de traducciones y se devuelve la cadena traducida según el idioma indicado al inicio de la aplicación.
Para más detalles, visite el svn (el de googlecode, no el de rediris).
