¿Qué técnica sería el menor esfuerzo para internacionalizar (al menos en varios idiomas) las aplicaciones de Delphi existentes?

StackOverflow https://stackoverflow.com/questions/233560

Pregunta

He desarrollado aproximadamente 300 aplicaciones que me gustaría proporcionar con capacidades multilingües independientes del sistema operativo. He escrito un traductor justo a tiempo, pero eso es demasiado lento en aplicaciones con muchos componentes. ¿Qué sugerirías que haga?

¿Fue útil?

Solución

He escuchado que los componentes TsiLang son agradables, pero usted está mirando un solución in situ ...

He usado GNU gettext para Delphi que hace exactamente lo que quiere, carga las traducciones desde un archivo de texto y reemplaza el texto en sus componentes. Incluso tiene un escáner pas / dfm para generar automáticamente el archivo de traducción al inglés.

También es posible cambiar automáticamente su código fuente pascal para inyectar el procedimiento gettext en lugar de sus cadenas estáticas. Si no me equivoco, solo agrega un guión bajo como función, como se muestra a continuación.

ShowMessage('Hello'); // before
ShowMessage(_('Hello')); // after

Debo decir que han pasado 2 años desde la última vez que usé este método.

Una cosa seguirá siendo problemática: los componentes de Delphi no están habilitados para Unicode (D2009 corrige esto), por lo que cuando no cambie los componentes, tendrá soporte limitado para otros idiomas.

Otros consejos

Estamos utilizando TsiLang y estamos muy contentos con él.

Uno de los mejores puntos es que puedes realizar una traducción previa del proyecto con un diccionario (que completaste con las traducciones existentes).

Una buena solución gratuita sería GNU gettext para Delphi . Tiene algunas capacidades que no están presentes en TsiLang; por ejemplo, puede poner el conocimiento sobre cómo contar cosas (diferentes terminaciones para uno, dos, cuatro, ciento dos, muchos ...) en el archivo de traducción para que no lo haga ' No tengo que enseñar a cada programa para saber esto.

La licencia para la parte de Delphi es muy permisiva, pero no estoy seguro de cuánto afectará a tu aplicación el contenido de GNU incluido.

Obtenga Multilizer . Está hecho en Delphi y puede manejar programas de Delphi como ningún otro con soporte especial para VCL. Incluso puede rehacer sus pantallas fácilmente para cada idioma. Con Multilizer puede usar diferentes técnicas para traducir y ejecutar su programa.

Delphi 2009 ha agregado un Entorno de traducción integrado / Administrador de traducción externa ITE y ETM ahora están disponibles para Delphi y C ++ Builder.

En el artículo de Codegear: Novedades de Delphi y C ++ Builder 2009 , afirman :

  

El entorno integrado de traducción   (ITE) es una parte del IDE que   Simplifica la localización de tus proyectos.   ITE puede crear un nuevo proyecto localizado.   de un proyecto existente. ITE no   traducir automáticamente el texto, pero   proporciona un cuadro de diálogo que enumera todo el texto   que necesita ser localizado y campos   en el que ingresar el correspondiente   texto traducido Una vez que hayas entrado   el texto traducido y construyó el   proyecto localizado, puede configurar otro   idioma activo y mostrar un formulario en   el texto localizado; no tienes que   cambiar locales y reiniciar su sistema.   Esto te permite realizar   localización sin requerir un   sistema localizado.

     

El administrador de traducción externo (ETM)   es una aplicación independiente que funciona   con archivos DFM y cadenas de texto en el   código fuente. Aunque ETM no   le permite crear un nuevo localizado   proyecto, proporciona un diálogo   listado de texto localizado y el   texto traducido, de manera similar a ITE.

Esto es lo que planeo probar primero una vez que esté en el punto en que quiero internacionalizar mi producto.

Sin embargo, para mí la parte fácil es traducir el programa. La parte difícil es traducir el archivo de ayuda.

Diría GNU gettext para Delphi en combinación con Paquete de componentes Tico Unicode (previamente gratuito bajo TntWare) para obtener soporte unicode en los componentes.

Para trabajar o hacer que los traductores trabajen con los archivos gettext, recomiendo mirar la plataforma gratuita Poedit que puede editar los archivos .po.

Solo por mencionar cxLocalizer si posee componentes de DexExpress.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top