Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
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-03-2005
Holderhek Holderhek is offline
Miembro
 
Registrado: feb 2005
Posts: 17
Poder: 0
Holderhek Va por buen camino
Componente para soporte Multilenguage en Delphi 2005

Hola

Ultimamente he querido crear programas que tengan soporte Multilenguaje. No he encontrado componentes que me dejen hacer eso para Delphi 2005, entonces queria saber si alguno de Ustedes conoce uno gratis.

Si no conocen, se me habia ocurrido crear uno, pero he tenido muchos problemas al crear un componente; siguiendo un tutorial para Delphi 7 no lo he logrado.

Bueno, mi pregunta en concreto es si alguien conoce un Componente para soporte Multilenguaje en Delphi 2005. Y si nadie conoce, entonces si me ayudarian a crear este componente.
Si desean puede ser como un "Proyecto" entre varios, ya que estoy seguro que a mas de alguno le servira.

Si alguien se anima a ayudarme con la creacion del componente, habia pesado en lo siguiente:

Primero, un archivo donde este la palabra y la traduccion, siguiendo el siguiente formato:

[FORM1]
WORD1: TRANSLATION1
WORD2: TRANSLATION2
WORD3: TRANSLATION3
[FORM2]
WORD1: TRANSLATION1
WORD2: TRANSLATION2

Ese seria el formato del archivo english.lang, en donde el FORM1 tiene 3 palabras y el FORM2 tiene 2 palabras.

Entonces, se agregaria un componente para cada Form (Cada componente carga las palabras de su propio Form) y en la creacion del componente, este buscaria en el registro el idioma del programa y lo cargaria (english en este caso). Cargaria todas las palabras (WORD1, WORD2, ...) en un Arbol de Busqueda Binaria.

Ahora, para que esto funcione, los componentes deben tener como Caption o Text, las palabras del Arbol Binario (WORD1, WORD2, ...)

Entonces, al crearse el Form, se llama a un procedure del Componente que carga el idioma. Lo que haria seria ver todos los componentes del Form, y ve de que tipo es (Si es TButton, o TLabel, etc) y busca dentro del Arbol de Busqueda Binaria por la palabra, si hay traduccion, entonces le asigna la traduccion. Si no hay, entonces le deja el Caption igual.

Ejemplo:

Tenemos un Form que se llama frmMessage que tiene un TLabel donde el Caption es "MESSAGE" y tiene un TButton que el Caption es "BUTTON"

Entonces, english.lang tendria:

[frmMessage]
MESSAGE: This is a message.
BUTTON: Yes

De esta forma, el componente buscaria el Caption del TLabel, lo encontraria y luego le pondria el nuevo Caption que es "This is a message" y leugo buscaria el Caption del TButton, lo encontraria y le pondria "Yes".

Si fuera español.lang, seria:

[frmMessage]
MESSAGE: Este es un mensaje
BUTTON: Si

Y luego cargaria la informacion de español.lang en vez de english.lang (Eso es porque estaria especificado en el registro).

En fin, si alguien se interesa por este "proyecto" que lo diga. Si algo no se entendio, no tengo ni un problema en intentar explicarlo de nuevo.

Gracias por su tiempo. Saludos.
Responder Con Cita
  #2  
Antiguo 10-03-2005
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
resp

Si te tomas el tiempo para ver el archivo que genera tsiLang
Aqui esta la direccion http://www.sicomponents.com/tsilang1.html
Esto te ahorra mucho tiempo en canto a diseño. y de este puedes obtener
muchas ideas.

Te puedo ayudar si es que lo quieres.

Pero sabes que debes ir conociendo algo de RTTI(si no lo conoces).

Para las propiedades.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
  #3  
Antiguo 16-03-2005
Holderhek Holderhek is offline
Miembro
 
Registrado: feb 2005
Posts: 17
Poder: 0
Holderhek Va por buen camino
Hola
Muchas gracias, es justo el componente que necesitaba.
Vere eso de RTTI pues no lo conozco.
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 11:50:54.


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