2009-08-13 21 views
8

¿Delphi admite la internacionalización de alguna manera?Delphi e i18n

He visto que puedo agregar idiomas diferentes para un proyecto, pero eso parece crear varias instancias de los archivos dfm. ¿Tengo razón en que el lenguaje por lo tanto no se puede cambiar en tiempo de ejecución?

¿Cómo gestionas la internacionalización (si lo haces)? ¿Hay alguna mejores prácticas?

+1

algunos de los recursos citados en las respuestas a esta pregunta puede ser útil para usted: http://stackoverflow.com/questions/1019822/process-for-localization-of-delphi-2009-app-by-volunteer-translators – Argalatyr

Respuesta

1

Una vez experimenté con el cambio en el tiempo de ejecución de los idiomas. Funcionó muy bien, pero necesitaba escribir mucho código yo mismo (y eludir los archivos dfm). El problema es que es muy complicado y casi nunca lo necesitas.

La mejor opción (en mi opinión) es crear una versión de idioma base y utilizar una herramienta de traducción para el otro idioma. Usamos un third party translator que funciona en el ejecutable y dll. Reemplaza las cadenas en los recursos y crea nuevos archivos binarios.

Una gran ventaja de esta herramienta es que muestra los diálogos traducidos (solo los componentes de Windows estándar) para que tenga un feedback directo si las etiquetas son demasiado grandes.

+0

Gracias. ¿Alguna recomendación sobre la herramienta de traducción? – jpfollenius

+0

Agregué un enlace. No es gratis, pero estamos muy contentos con eso. –

0

He estado usando el SiComponents antes. Le permiten cambiar todo el texto independientemente del ejecutable. Puede incrustar los diferentes idiomas en su ejecutable (no recomendado) o cargarlos desde archivos. También hay un editor para apoyar la traducción. Son muy buenos, estables y rápidos.

En Delphi 2006 en Herramientas, Opciones, Opciones de herramientas de traducción, puede configurar las herramientas de traducción, especialmente el Repositorio de traducción. Se puede encontrar en View, Translation Manager. Todas las cadenas traducidas serán cadenas de recursos y se pueden almacenar en dll específicos del idioma. La búsqueda de ayuda para Translation Manager lo orientará en la dirección correcta.

5

Delphi se envía con algunas herramientas para hacer esto.

Aquí es una tutorial para Delphi 2005, y una video de Nick Hodges mostrando la versión más reciente para Delphi 2009.

-1

Secundo la recomendación para el uso de los componentes TsiLang (www.sicomponents.com). Los acabo de usar para actualizar de solo inglés a inglés + chino, seleccionables en tiempo de ejecución, y encontré que el proceso es mucho más fácil de lo que esperaba. Los resultados finales no son perfectos, pero sin duda son lo suficientemente buenos para trabajar.

1

Amd entonces hay dxgettext:

http://dxgettext.po.dk/

tradicionalmente una de las herramientas que se utilizan para cambiar el tiempo de ejecución idioma sin reiniciar.

Tenga en cuenta que con Delphi/Unicode la cantidad de cambios de código con estos paquetes ha disminuido (uno ya no tiene que cambiar cualquier uso resourcestring)