Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Componente para soporte Multilenguage en Delphi 2005 (https://www.clubdelphi.com/foros/showthread.php?t=19037)

Holderhek 02-03-2005 19:36:33

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.

rastafarey 10-03-2005 22:11:58

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.

Holderhek 16-03-2005 15:46:00

Hola
Muchas gracias, es justo el componente que necesitaba.
Vere eso de RTTI pues no lo conozco.
Saludos.


La franja horaria es GMT +2. Ahora son las 13:56:56.

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