sábado, 12 de septiembre de 2009

Mejorar las traducciones de los programas

Algo que me ha gustado de los sistemas libres es la posibilidad de participar en el proceso de mejoramiento de las aplicaciones. Es cierto que no mantengo, oficialmente, ningún programa. No obstante, los que tengo los modifico para tener mayor comodidad. Para ello dispongo del código fuente, instrucciones de compilación y hasta comunidades en línea en las que puedo encontrar consejos y trucos para sacar el mayor provecho de mis programas.

El último caso fue, desde hace algo más de dos meses, de ROX-Filer, el administrador de archivos (y de los iconos del fondo de la pantalla) que utilizo en mi sistema, y cuya versión para Debian está un poco desactualizada y con un fallo en la traducción de los mensajes de la interfaz. Afortunadamente es software libre y puedo cambiarlo a mi gusto, así que me dediqué a la tarea de cambiar lo que no me gustaba: los mensajes a medio traducir.

¿Cómo se traducen los mensajes de un programa? Bueno, desde hace tiempo es costumbre, en los programas de software libre, preparar todos los mensajes para la internacionalización, es decir, la librería gráfica muestra el mensaje que le decimos que muestre, pero en el idioma que el usuario esté utilizando. ¿Cómo lo hace? Cuando tiene que mostrar un mensaje, la librería busca un archivo de mensajes que correesponda con el idioma que el usuario haya elegido o esté utilizando, y dentro de ese archivo busca el mensaje que debía mostrar y su equivalente traducción. De esta manera el programador sólo tiene que sacar la lista de todas las cadenas a un archivo PO y dejar que otros se encarguen de hacer la traducción. Y ya existen herramientas muy avanzadas tanto para extraer todos los mensajes como para traducirlos. Otra ventaja es que se puede agregar soporte a otros idiomas simplemente haciendo un archivo de lenguaje nuevo con las frases en el idioma que se quiere soportar. ¿Sencillo? Veamos:

Lo primero es instalar (en Debian Lenny) los paquetes translation-toolkit y poedit:
apt-get install translation-toolkit poedit
Hecho esto ya tenemos el programa Poedit, una utilidad gráfica que permite abrir un archivo PO y muestra, lado a lado, los mensajes originales y los traducidos, y en la parte de abajo aparecen los seleccionados en dos paneles para facilitar esta tarea. Ahora necesitamos los archivos PO con los cuales trabajar.

Cuando tenemos el código fuente de un programa podemos mirar si hay un directorio po/, y seguramente adentro encontraremos los archivos correspondientes a cada lenguaje soportado. El de español empieza por es, pero puede tener _CO, _ES, _AR u otro similar en algunos. Abrimos el Archivo con Poedit y editamos las entradas que nos parezcan. Recomiendo no ser demasiado literales en las traducciones, sino encontrar el sentido de los mensajes originales y encontrar expresiones adecuadas en el idioma al que se están llevando.

Finalizado este proceso, debemos compilar el archivo de lenguaje. Es un proceso corto, y permite que el programa encuentre los mensajes más rápidamente que como si estuvieran en un archivo de texto plano. Esto se logra con el programa pocompile que hace parte de translation-toolkit:
pocompile -i es.po -o es.mo
Si lo deseamos, podemos dejar el programa como está, para ahorrarnos la compilación de toda la aplicación. Si es así, debemos buscar el directorio LC_MESSAGES del programa y meter allí nuestro archivo, posiblemente reemplazando uno que ya haya allí.

También deberían considerar el enviar sus traducciones a las páginas de los proyectos o a las listas de los desarrolladores. Siempre cae bien una buena traducción especializada por regiones.
Hasta la próxima.

No hay comentarios.:

Buscar entradas