Mi experiencia al respecto

Yo llevo un par de días estudiando el asunto de traducir algunas aplicaciones Delphi a otros idiomas (bueno, en principio sólo a portugués) y esto es lo que te puedo contar:

He probado a usar el gettext, y lo que no menos me gusta es la herramienta para hacer la traducción (podría intentar montar alguna distribución Linux para probar la de KDE, que tiene fama de ser la mejor). Además, me imagino que tengo algo mal instalado, y me faltan funcionalidades con respecto a lo que veo en la documentación. También me tengo que preocupar de que no se traduzcan determinadas propiedades de determinados componentes (como FieldName, DatabaseName, etc)

He probado algunas herramientas comerciales, y de todas ellas la que más me ha gustado es sisulizer. La parte buena es que permite editar los forms de forma visual. La parte mala es que este trabajo se hace a partir del exe (no del código fuente original) y que lo que hace es simular los componente visuales. Cuando me he encontrado con alguno que no está soportado, pues "hasta aquí hemos llegado". Hay la opción de montar algo para que el programa reconozca esos componentes, pero claro, te lo tienes que currar tú (de algunos componentes de pago ya se ha preocupado el fabricante de hacer ese trabajo, pero a ver quién se encarga de hacer todo eso con los componentes de la Jedi, máxime cuando ellos "apuestan" por gettext para este tema)

Al final he probado el ITE de Dephi 2007, que tiene como cosa buena el que es parte del entorno, y puedes acceder a todos los componentes desde el mismo. Como cosa "chunga", pues que la edición visual parece que no es todo lo potente que debería ser. Por ejemplo, a la hora de trabajar con un control multihoja, no puedes cambiar la pestaña activa para editar los componentes de las otras hojas. Además, no sé si es por tener "sólo" 1 GB de RAM, pero demasiadas veces me ha pasado que el Delphi 2007 empieza a chupar cpu y memoria como loco y, al final, peta (realmente desaparece por completo el proceso, sin ni siquiera mostrar un triste mensaje de error) y he perdido parte del trabajo (que, de momento, son sólo pruebas, menos mal)

Así que ya ves, ando un poco descontento con todo. Lo que sí tengo claro es que la solución óptima (para mi caso concreto, todo es código Delphi) debe estar en algo integrado en el entorno, es la única manera de poder editar visualmente todas las propiedades que haga fata, pero el ITE no me acaba de convencer.

La solución que se me ha ocurrido, y que hoy pienso probar, es aprovechar el ITE para tener un repositorio de las cosas comunes (y, así, no repetir la traducción de algunos forms comunes a varios proyectos). Eso sí, para editar los forms en portugués (al menos ahora, que tengo que hacer todo el trabajo, empiezo de cero el proceso de traducción) copiaré el .dfm de cada idioma a otro directorio, pondré el .pas bueno, y abriré ese form en el entorno como si fuera un fichero externo al proyecto. Así, modificaré los componentes/propiedades con todas las facilidades que me da Delphi. Cuando acabe, vuelvo a copiar el .dfm al directorio correspondiente y que todo siga su curso. Supongo que, al hacer esto, el ITE no me dirá si una propiedad ya ha sido traducida o no, pero creo que ganaré bastante en comodidad. Como mencioné antes, para mí es esenciar el poder editar visualmente los forms, con la cantidad de textos que tengo, sería un desastre tener que compilar para poder ver si todo queda bien alineado.

Lo que no me ha convencido de tu solución es que, además de los .dfm deberás tener otros ficheros de recursos para controlar los textos que se usan en el código, o bien un .pas con unos cuantos {$IfDef ...} para definir esos textos. Además, se basa en "engañar" al entorno y, cuando debas hacer cambios a los forms, tendrás bastante trabajo para replicarllos en los otros .dfm

Lo que hacen mejor algunas herramientas comerciales es que, con tu solución tienes 3 programas diferenes, uno en cada idioma; la solución del ITE es un exe con varias dlls para cambiar de idioma; con localizer puedes tener un único exe que tenga autocontenidos los recursos para cambiar de idioma. Es decir, tienes un único exe multilenguaje. El ITE es algo intermedio, tienes un único exe y varias dlls (una para cada idioma adicional) el sistema de GNU gettext es parecido, aunque en lugar de dlls tiene ficheros de traducción.

En fin, ya suponía que la solución perfecta (para mis necesidades) no existía, pero también debo confesar que esperaba algo más de algunas herramientas comerciales (después de haber visto el precio) Lo cierto es que con todas ellas parece muy fácil traducir un "hola mundo" con 2 botones y un menú, pero cuando te sales de ahí me he encontrado con que no es que ayuden especialmente a acelerar el tema. Lo que veo mejor llevado es la posibilidad de tener separada la figura del programador de la del traductor, mantener repositorios de traducciones, facilitar la opción de cambiar el idioma sobre la marcha, comprobar qué llevo traducido y qué me falta, etc. Es decir, el control de las diferentes etapas del proceso, pero lo que para mí es básico, modificar visualmente las propiedades de los componentes, pues no lo veo muy conseguido en ninguna de ellas.

Bueno, perdona por el rollo que te he soltado. Espero que nos sirva para algo (a mí, al menos, me está ayudando a estructurar las ideas que tenía al respecto)

Un saludo.

Responder

El contenido de este campo se mantiene como privado y no se muestra públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Saltos automáticos de líneas y de párrafos.

Más información sobre opciones de formato