PDA

Ver la Versión Completa : Cambiar idioma de un proyecto


elcigarra
20-11-2005, 17:32:55
Tengo que cambiar de Idioma una aplicación entera (por tercera vez). Para automatizar estos asuntos del idioma de los usuarios se me ocurrió:

a)extraer los ".frm" y ".pas" del proyecto a un StringList (un Tmemo como quien dice),

b)extraer los textos después del término "Caption" en los ".frm" y todos los textos entre comillas en los ".pas",

c)Pasar todas estas frases o palabras a una BD, p.ej a un campo "Idioma1" de tipo String

d)Traducir a mano terminos y frases a un segundo campo (Idioma2)

e) Sustituír por el método "bruto" tomando los ".frm" y los ".pas" como archivos de texto, donde haya algo del 1er campo sustituirlo por el segundo.

Dos preguntas son las que tengo.

1) Hay algún sistema no tan bruto y tedioso como este?
2) Como puedo hacer esto con los formularios de QuickReport? porque aunque haciendo "View as Text" se ven bien, tomado como archivo de texto el .frm no se entiende nada (está lleno de códigos extraños). O... ¿hay alguna forma de enviar el resultado del "View as Text" a un archivo de texto o a un StringList o a algún lado desde donde se pueda acceder en ejecución?

Héctor Randolph
20-11-2005, 20:19:50
Hola elcigarra.

Aquí mismo en el club, busca en la sección de recursos (http://www.clubdelphi.com/recursos) y encontrarás un artículo acerca de internacionalización de aplicaciones.

El procedimiento que describen en este artículo tal vez facilite un poco el trabajo, sin embargo no deja de ser tedioso.

Un saludo.

Neftali [Germán.Estévez]
21-11-2005, 10:04:45
Bueno, yo te diría que antes de implementar ese método (bastante manual) revisaras componentes y sistemas estandard para "Internacionar la aplicación", como ya te han comentado.
Si después de eso decides implementar el método comentado, tal vez deberías echarle un vistazo a éste componente (http://www.torry.net/vcl/vcltools/multilanguage/internationalization.zip); Te puede facilitar el trabajo, ya que funciona de la siguiente manera;
(1) Lo colocas en un form de tu aplicación.
(2) Ejecutas la aplicación y te genera un fichero con todas las cadenas a traducir; (lo que tú quieres sacar del DFM).
Pero no acaba ahí; Si en ese mismo fichero tradices las cadenas (Cadena Idioma1=Cadena Idioma2) la siguiente vez que ejecutas la aplicación el componente vuelve a generar otro fichero como el anterior, pero sólo con las cadenas que te falta por traducir; De forma que cuando ya están todas traducidas el fichero generado aparece vacío.

Es bastante simple, pero la idea es buena.

Un saludo.

elcigarra
21-11-2005, 10:57:52
Gracias amigos... Neftali, tu sabes que ese componente (con otros 2 o 3 más que podían servir) lo había bajado ayer creo que de Torry, aunque estuve un rato buscando en internet y puede que lo haya encontrado en otro lado. De todas formas lo bajé de nuevo del link que tu incluyes en el mensaje pero en ningún caso pude instalarlo ya que al compilar el paquete en el que lo pongas da un error:

File not found: MLWDP.dcu

Tal vez tu tengas ese archivo.

Neftali [Germán.Estévez]
21-11-2005, 12:09:27
Yo no he tenido problema en Delphi 6.
Crea un package nuevo, añade el .PAS y compila/instala perfecto.
¿Qué versión de Delphi utilizas?

elcigarra
21-11-2005, 13:34:31
7

Lo pruebo esta tarde de nuevo y te aviso