Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-07-2003
Athalon Athalon is offline
Miembro
 
Registrado: jul 2003
Ubicación: Barcelona
Posts: 31
Poder: 0
Athalon Va por buen camino
Question Multilenguaje en Delphi 7

Hola Chic@s,

Bueno, este es mi primer mensaje en un foro, espero hacerlo correctamente.

Tengo que investigar el multilenguaje en Delphi y he encontrado algunas cositas interesantes, he visto que puedes introducir lenguajes y hacer la traducción mediante la opción de Project|Languages|Add..., introduzco un lenguaje y hago la traducción pero no se como hacer que se refleje en el programa, por ejemplo, el programa comienza en lengua Castellana y quiero pasarlo a lengua inglesa, introduzco el lenguaje correspondiente y cuando ejecuto el programa me sale la principal, la lengua castellana y quiero saber como hacer la llamada para que me aparezca la lengua inglesa.

Espero una respuesta lo más rápido posible y muchas gracias por leer el mensaje.
__________________
Con una sonrisa me alegras el día, con tu corazón la vida.
Saludos,
Athalon
Responder Con Cita
  #2  
Antiguo 02-07-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
El problema de utilizar este metodo, es que el lenguaje se basa en el que tienes establecido en Windows (si no voy errado), por lo que para que puedas ver la aplicacion en ingles, tienes que decirle a Windows que su idioma es el ingles.

Si lo que quieres es poder cambiar el idioma por opcion de menu, tienes que hacerlo de otra forma. Hay varias maneras, pero la que yo utilizo es poner todos los textos en una tabla de la base de datos y, traducirlos en ella. Entonces, segun el idioma escogido, muestro la pantalla. (muy a grandes rasgos )
Responder Con Cita
  #3  
Antiguo 02-07-2003
Athalon Athalon is offline
Miembro
 
Registrado: jul 2003
Ubicación: Barcelona
Posts: 31
Poder: 0
Athalon Va por buen camino
Gracias Cadetill pero he encontrado otro método bastante eficaz y sencillo, ahora utilizo ficheros de recursos de texto (*.res) creados con C++ aunque me parece que desde Delphi también se pueden modificar cosa que no he probado y la verdad que es bastante sencillo, por si acaso te interesa o le interesa a alguien más el método que se ha de utilizar es tan sencillo como poner el fichero en el Source del programa mediante la clave {$R nombrefichero.res} y luego utilizar una función llamada LoadStr(integer) en la cual le pasas el código que le has puesto a la frase dentro del .res y esta función te la devuelve, lo que no he probado es de hacerlo con varios ficheros.

De todas maneras Gracias otra vez Cadetill y ahora entiendo más el funcionamiento de los Languages de Delphi.
Responder Con Cita
  #4  
Antiguo 02-07-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Agrego que tienes un ejemplo entre las Demos de Delphi (RichEdit).

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 02-07-2003
Athalon Athalon is offline
Miembro
 
Registrado: jul 2003
Ubicación: Barcelona
Posts: 31
Poder: 0
Athalon Va por buen camino
Smile

Gracias delphi.com.ar, si alguna vez necesito hacerlo con la opción de Languages tendre en cuenta el ejemplo que ya lo he mirado por encima.

Muchas Gracias.
Responder Con Cita
  #6  
Antiguo 02-07-2003
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 21
Descendents Va por buen camino
Yo no se si me he complicado la vida, pero yo lo que hecho, es una función, que lo que hace es que se recorre todos los componentes del form, cogen su caption, y los busca en un diccionario hecho por mi.Se queda con el numero de linea y carga el diccionario de inglés y va a buscar el número de linea con el que me he quedado antes y se lo pone al caption.

CAPTION, TEXT, lo que sea del compoente que sea

Pongo la llamada de función en el create del form y lo que hace es que siempre me lo traduce el sólo al diccionario que yo le diga

Y con el tema de showmessage y messagedlg y tal, lo que hago es que le asigno directamente un número de linea al mensaje, y el mensaje lo escribo en el diccionario
Responder Con Cita
  #7  
Antiguo 03-07-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Hola Descendents

La funcion de la que hablas, lo hagas de la forma en que lo hagas (con un fichero, con una tabla de la VD, con archivos de recursos,....) la tienes que hacer de todas maneras, asi que no es ninguna locura lo que has hecho (ni complicarte la vida)
Responder Con Cita
  #8  
Antiguo 03-07-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola

Yo utilizo un componente comercial (de pago), el TsiLang, es muy comodo y funciona bien, además es bastante económico.

http://www.sicomponents.com/tsilang1.html

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #9  
Antiguo 03-07-2003
Athalon Athalon is offline
Miembro
 
Registrado: jul 2003
Ubicación: Barcelona
Posts: 31
Poder: 0
Athalon Va por buen camino
Talking

Hola a tod@s y gracias por todas las respuesta,

Ya lo he hecho y he hecho un programa que me funciona de mil maravillas, como bien decis paso por todos los componentes y les aplico el idioma adecuado utilizando un fichero de recursos.

Otra vez gracias por la ayuda y la orientación.
Responder Con Cita
  #10  
Antiguo 23-11-2003
DJ VMan DJ VMan is offline
Miembro
 
Registrado: jun 2003
Ubicación: Iquique - Chile
Posts: 81
Poder: 21
DJ VMan Va por buen camino
Hola. Vengo con una interrogante al tema:

He visto algunos software multilenguaje (o idioma), que ocupan archivos XML. En uno de ellos me consta que está hecho en CB, la pregunta es ¿Como se hace?, no tengo la mas mímina idea por ello pregunto.

He leido todo lo que han dicho (incluido el ejemplo richedit), y la forma de utilizar un XML, es la que mas megusta.

Digo esto por lo siguiente:

Supongamos que tengo un software que se hace popular. YO (nótese que YO) no voy a querer traducir toda la aplicación, es más fácil enviar un archivo de config. de idioma (1 solo) y que algunos voluntarios por aqui y por allá lo editen en los idiomas que se requiera.

Desde este punto de vista, me parece mejor un XML ya que es mas popular su construcción y su manejo.

Se me ocurre que tendré que hacer una función como la que dijo Descendents...o no?, pero como hago para abrir un XML desde Delphi?

(escribiendo se me ha ocurrido que tambien podría ser con un INI)
__________________
- Si tienes un problema que tiene solución ¿porque te preocupas?
- Si tienes un problema que no tiene solución ¿porque te preocupas?

Última edición por DJ VMan fecha: 23-11-2003 a las 13:37:54.
Responder Con Cita
  #11  
Antiguo 23-11-2003
Avatar de kinobi
kinobi kinobi is offline
Miembro
 
Registrado: may 2003
Posts: 2.621
Poder: 23
kinobi Va por buen camino
Hola,

Cita:
DJ VMan comentó:
Supongamos que tengo un software que se hace popular. YO (nótese que YO) no voy a querer traducir toda la aplicación, es más fácil enviar un archivo de config. de idioma (1 solo) y que algunos voluntarios por aqui y por allá lo editen en los idiomas que se requiera.
Otra alternativa: puedes utilizar gettext, el conjunto de herramientas del proyecto GNU para internacionalización.

Yo lo he utilizado en Linux con C y C++ y es bastante cómoda. Se crean archivos (ASCII) donde se almacenan las cadenas que precisan ser traducidas en tu aplicación, con un determinado formato (documentado), para cada idioma que quieras utilizar y, tras una especie de compilación de recursos del archivo, ya están listos para utilizar en tu aplicación. En ésta, tu aplicación, se marcan las cadenas que dependan del idioma escogido, bien a través de la función gettext("cadena_a_internacionalizar") o con la macro: _("cadena_a_internacionalizar") y listo, el sistema ya se encarga de localizar la versión adecuada al idioma utilizado en ese momento.

Al ser archivos ASCII los que guardan las cadenas de la aplicación que son susceptibles de internacionalización, cualquiera puede adaptar tu aplicación a su idioma con tener a mano un simple editor ASCII.

Como te he comentado, yo he utilizado gettext con C y C++ en Linux. Existen versiones para Win32, entre ellas esta: http://gettext.sourceforge.net/, con lo que lo único que quedaría sería hacer una interfaz, si no está hecha ya (que no lo sé), para poder utilizar gettext desde Delphi.

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:57:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi