Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-04-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Smile Como traducir fácilmente una aplicación a otros idiomas

Hola.

Existe un Unit que permite traducir una aplicación a otros idiomas de forma muy sencilla y rápida.

Es IniLang vs. 0.9. Se encuentra en http://www.torry.net/pages.php?id=273 y aparece como un componente (realmente es un Unit) para Delphi 4.

Al ser de 1999 y aparecer como para Delphi 4, seguramente muchas personas lo desestimarán. Sin embargo, creo que es una joya.

Funciona bien en Delphi 4, 5, 6 y 7; quizás también lo haga en versiones posteriores.

Traduce los caption, los hint, las líneas de memos y richedit, las constantes de texto, etc. y permite cambiar de idioma en ejecución.

Para utilizarlo, primero se añade IniLang.pas a la aplicación, todos los form que tengan componentes que deban ser traducidos deben incluir IniLang en el Uses.

Luego se guardan todas las constantes de texto en un Unit específico.

Después se añade la llamada al procedimiento "Fillcustomini", que crea el archivo INI (custom.ini) con los datos de todos los componentes de todos los form y con los datos de todas las constantes de texto.

Y ya está hecho el trabajo.

Finalmente se traduce el texto del archivo creado (custom.ini) y se guarda con el nombre del nuevo idioma. Se añade al programa una llamada a ese archivo y unos pocos detalles más.

Incluye un ejemplo bastante claro.

Aclarar que seguramente no funcionará con idiomas como el árabe, el japonés, etc.

El componente comete uno o dos errores que se resuelven con unas modificaciones que están incluidas en IniLang2.

Todo ello se encuentra en el archivo de descarga que aparece en mi mensaje del día 30-04-2010. En ese archivo la unit se llama IniLang2 y sustituye a IniLang.



Y aquí van algunas recomendaciones de uso:

- El ejemplo incluido es muy claro.

- Los nombres de los componentes deben ser diferentes de los caption, pues si son iguales, los caption son ignorados por INILang2.

- Para que un componente sea ignorado por INILang2, su nombre debe comenzar por "out"; por ejemplo, "outLabel1".

- Cuando se va a crear el archivo "custom.ini" con el procedimiento "Fillcustomini" hay que asegurarse antes de que todos los form están cargados en memoria.
Es decir, que en menú Project/Options.../Forms (pestaña) todos los forms están en el cuadro de la izquierda (Auto-create forms). Si alguno está en el cuadro de la derecha (Avalaible Forms), sus datos no se incluirán en el archivo "custom.ini".

- Cuando se ejecuta el programa desde Delphi (con F9) para crear el archivo "custom.ini" (con el procedimiento "Fillcustomini" ), aparece un error al leer las constantes, y no se crea el archivo "custom.ini" de forma completa.
Para solucionarlo, hay que compilar con Ctrl-F9 y luego ejecutar el programa desde el navegador de windows.

- Para obtener el texto de una constante de texto (por ejemplo, una cuyo nombre sea "Form1_01") hay que utilizar la función "misc( , )", que recibe 2 parámetros. De esta manera: "misc(Form1_01,'Form1_01')". Un ejemplo sería:
showMessage( misc(Form1_01,'Form1_01') );

- Importante: Este error se encuentra en IniLang, pero está resuelto en IniLang2.
En el código del programa (después de "implementation") no pueden haber líneas que, después de eliminar los espacios en blanco (con Trim() ), se inicien con alguno de estos 3 caracteres (# ' +) .

Si hay líneas que se inicien con alguno de estos 3 caracteres (# ' +), IniLang las confundirá con constantes de texto que contienen varias líneas y se producirá un error al crear la sección [Misc] del archivo "Custom.ini"

Un ejemplo de esto sería:

Label3.caption := Label1.caption
+ Label2.caption ;

La segunda línea ( "+ Label2.caption ;" ) producirá un error cuando INILang vaya a crear el archivo "Custom.ini".

Si es necesario que existan estas líneas, el autor recomienda esta solución utilizando las llaves de comentarios para evitar que, tras usar Trim(), "+" sea el primer caracter de la línea y respetando el código:

Label3.caption := Label1.caption
{} + Label2.caption ;

Como ya se mencionó, este error no aparecerá en IniLang2.

El cambio, es decir, el añadir los comentarios "{}" lo realizará automáticamente el procedimiento "Before_SearchStr". Esa es la mejora principal que aporta INILang2 0.9 .

Debido a estos cambios (añadiendo "{}"), después de ejecutar el programa, Delphi le anunciará que aquellos archivos modificados (que estuvieran cargados por Delphi) han sufrido cambios y le preguntará si deben ser leidos de nuevo.

- Es recomendable borrar el fichero "custom.ini" antes de utilizar la función "Fillcustomini". Por ello, IniLang2 incluye este proceso al inicio del procedimiento "Fillcustomini".


Salu2.

Ramón



Localización, traducción.

Última edición por rrf fecha: 30-04-2010 a las 17:51:30. Razón: Actualizar y simplificar la información. Hacer referencia a fichero zip en mensaje del día 30-04-2010
Responder Con Cita
  #2  
Antiguo 27-04-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Thumbs up Gracias

Se agradece el mini-tutorial.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 27-04-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
La verdad es que, con lo útil que me pareció IniLang (después de investigar otras 10 ó 12 opciones) y con todo lo que he aprendido de este foro y todas las ayudas que he recibido en él, me sentí casi obligado a compartir esta información con quien la pudiera utilizar.
Salu2.
Ramón.
Responder Con Cita
  #4  
Antiguo 27-04-2010
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Cita:
Empezado por Neftali Ver Mensaje
Se agradece el mini-tutorial.
Acá hay otro muy bueno http://neftali.clubdelphi.com/?p=688
Responder Con Cita
  #5  
Antiguo 30-04-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Smile

Maxium, gracias por el enlace al tutorial de Neftali. Y mis felicitaciones a Neftali por la calidad y claridad de su tutorial.

Hace un tiempo también encontré el GNU Gettext pero, como ya había probado IniLang anteriormente (y conocía su facilidad de uso), deseché GNU Gettext porque me pareció muy complicado el proceso que exige, aunque no llegué a probarlo.

Gracias a la guía de Neftali y a tu recomendación, me animé a probarlo y se confirmó mi impresión inicial: para mí, GNU Gettext exige un proceso (bastante) más laborioso que IniLang.

Sin embargo, ofrece más posibilidades que IniLang, como utilizar Google para hacer la traducción (lo vi en un menú, no lo he probado) o trabajar con textos en Unicode (también visto, pero no probado) y seguro que muchas más.

A pesar de ello, si se trata de hacer una traducción a idiomas que utilizan el alfabeto europeo occidental (español, inglés, francés, alemán, catalán, gallego, euskera, etc.), creo que IniLang es mucho más rápido y sencillo de usar.


He modificado mi primer comentario de este hilo, donde explico como usar IniLang para actualizar cosas que antes no estaban incluidas. Por ejemplo, he retirado el código en Delphi (porque ya está incluido en el zip de descarga), lo demás son cambios en los comentarios.


He intentado ponerme en contacto con el autor de IniLang, pero su correo electrónico no existe (tiene más de 10 años).

Y creo que IniLang es una aportación demasiado buena como para que quede olvidada por las personas que podrían beneficiarse de ella.

IniLang no se puede actualizar (en torry.net) porque no soy el autor original. Por ello, he pensado en incluir todos estos cambios y enviarlos a torry.net como un nuevo componente, que se llamaría IniLang2.

Para hacerlo pido ayuda a otros miembros del foro porque, aunque he podido probar IniLang en Delphi 5, 6 y 7 (el autor ya la hizo en Delphi 4) y sería interesante probarlo en Delphi 2005, 2006, 2007, 2009 y 2010.

Incluyo un archivo zip de descarga en el que se incluye todo lo necesario para hacer la prueba. Basta con cargar el proyecto en Delphi, compilar con Ctrl-F9 y ejecutar el programa desde el navegador de Windows.

¿Qué hay que probar?. Pues 2 cosas:

1- Que el archivo "custom.ini" (lo creará el programa al hacer clic en el botón 'Crear "Custom.ini" (FR)' o 'Create "Custom.ini"') es igual que el archivo 'Custom_muestra.ini' que se incluye en el archivo zip.

2- Que el programa permite cambiar de idioma los caption de los botones, etiquetas, etc. Haciendo clic en los botones 'Français/French' y 'Anglais/English'.

Si lo pruebas, incluye en este hilo el resultado como una respuesta y así podré incluir esa información para indicar las versiones de Delphi en las que funciona.

La Unit 'IniLang2' incluida en el fichero zip es la versión modificada del IniLang original.

Gracias de antemano.

Ramón.
Archivos Adjuntos
Tipo de Archivo: zip IniLang2 - Probar.zip (13,8 KB, 44 visitas)
Responder Con Cita
  #6  
Antiguo 01-05-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
A ver si durante el fin de semana o a lo más tardar el lunes le puedo echar un vistazo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #7  
Antiguo 04-05-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Pues parece que funciona sin problemas en Delphi 2010. He añadido un nuevo idioma y compilado sin problemas.
Archivos Adjuntos
Tipo de Archivo: zip IniLang2 - Probar_D2010.zip (14,6 KB, 46 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #8  
Antiguo 04-05-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Wink

Neftali, muchas gracias por probarlo y por tu aportación del catalán.

Bueno, parece que funciona en Delphi 2010.

Vuelvo a pedir ayuda a los miembros del foro que tengan acceso a una versión de Delphi 2005, 2006, 2007 ó 2009 para que hagan la prueba que explico en mi mensaje del día 30 de Abril (hace 4 días).

Como ya comenté, la intención es la de publicar IniLang2 en torry.net para que otros usuarios de Delphi puedan beneficiarse de su facilidad de uso y posibilidades.

Es por ello que pido ayuda para facilitar una información lo más completa posible y poder indicar si esas versiones de Delphi funcionan bien con IniLang2.

Salu2.

Ramón.
Responder Con Cita
  #9  
Antiguo 05-05-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Es casi seguro que funcionando en D2010 no tendrás ningun problema en las anteriores desde D2006 hasta D2009.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 27-05-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Smile Torry publicó IniLang2

Hola a todos/as.

Después de unas semanas de espera, Torry publicó IniLang2.

Por si a alguien le puede interesar está en este enlace.

Espero sea útil a mucha gente.

Muchas gracias Neftali.

Salu2 a to2/as.

Ramón.

P.D.: La petición de que alguien que tenga Delphi 2006, 2007 ó 2009 lo pruebe y diga si funcionó o no, sigue en pie.
Si se tuviera esa confirmación, posiblemente se podría modificar el texto en Torry acerca de qué versiones de Delphi lo pueden usar y posiblemente más personas podrían beneficiarse de su uso.
Responder Con Cita
  #11  
Antiguo 28-05-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Buenas noticias.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #12  
Antiguo 28-07-2010
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Hola, y disculpen que este post es un poco antiguo, pero necesito saber como usar el componente inilang, para traducir una serie de valores de constantes de un idioma a otro que se encuentran en una units de resourcestring, por ejemplo en esta unit guardo el caption en español de un botón que se encuentra en un determinado formulario, este al crearse habre la unit de recurso para obtener el valor de la propiedad caption para el botón de comado.
Responder Con Cita
  #13  
Antiguo 29-07-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Has descargado y revisado el componente? (descarga la versión 2 que aparece más arriba)
Descargalo, descomprímelo y revisa los ficheros que hay dentro. A parte de los ficheros de texto de cómo utilizarlo hay alguna demo que puedes revisar.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #14  
Antiguo 29-07-2010
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Hola, gracias. ya he estado revisando los ejemplos, pero me salta una duda, sabes si acepta el idioma ruso ?
Responder Con Cita
  #15  
Antiguo 29-07-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por cmfab Ver Mensaje
Hola, gracias. ya he estado revisando los ejemplos, pero me salta una duda, sabes si acepta el idioma ruso ?
No lo se. Pruébalo y dinos.
¿Porqué no debería aceptarlo?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #16  
Antiguo 29-07-2010
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Funciona con el ruso, pero solo cambiando la configuración regional. saludos a todos
Responder Con Cita
  #17  
Antiguo 30-07-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Wink

Cmfab, gracias por tu aportación, y lo mismo para Neftali.

Ramón.
Responder Con Cita
  #18  
Antiguo 30-07-2010
cmfab cmfab is offline
Miembro
 
Registrado: jun 2010
Posts: 419
Poder: 14
cmfab Va por buen camino
Neftalí estuve revisando el tutorial sobre las GNU Gettext
dejé un post agregado sobre los menuitems porque no me funciona correctamente por ejemplo en español sería Archivo - Abrir - Cerrar en inglés sería File - Open - Close. es decir para que me entiendan mejor Abrir y Cerrar serían subitems del item principal Archivo. sin embargo nunca traduce a File cuando presiono el idioma inglés siempre se mantiene Archivo que es el idioma por defecto con el que se diseñó la pequeña aplicación de prueba.

saludos y gracias a todos
Responder Con Cita
  #19  
Antiguo 30-07-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.265
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si tengo un hueco lo probaré. No recuerdo que me pasara nada raro y lo he utilizado con menús.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #20  
Antiguo 31-07-2010
Avatar de matabyte
matabyte matabyte is offline
Miembro
 
Registrado: ene 2008
Ubicación: Kyoto, Japon
Posts: 177
Poder: 17
matabyte Va por buen camino
Gracias por el tutorial.

Yo para mis proyectos me he creado una minilibrería de funciones que me hace la función de traductor en unicode.

Aquí os dejo una función de autodetecta los ficheros .ini que sean de idioma que haya en un directorio determinado de la aplicación.

Código Delphi [-]
type
 TIDI_omas=record
              idioma:widestring;  //Texto del idioma
              ID:widestring;      //ID del idioma (ESP=Español; ENG=Inglés)
              fichero:widestring; //Fichero del que se leerá
           end;

var
 IDI_numero:word=0;         //Número de idiomas encontrados
 IDI_idioma_actual:word=0;  //Idioma actual
 IDI_idiomas:array of TIDI_omas;

var
 CH_directorio:widestring; //Directorio del programa
 IDI_cual_def:integer=0; //Variable que tiene cual será el idioma por defecto

procedure IDI_pre_carga_idiomas;
var
 f:tinifile;
  sr: TSearchRec;
  FileAttrs: Integer;
  st,st1,st2:string;
  swwidechar;
  pointer;
begin
  IDI_numero:=0;
  setlength(IDI_idiomas,0);
  //Cargamos primeramente el idioma Español
  if fileexists(CH_directorio+'LANG\IDI_esp.ini')=false then
   begin
     f:=tinifile.Create(CH_directorio+'LANG\esp.ini');
     try
       f.WriteString('GENERAL','IDG','IDENTIFICADOR_APP');
       f.WriteString('GENERAL','ID1','Español');
       f.WriteString('GENERAL','ID2','ESP');
     finally
       f.Destroy;
     end;
   end;

   //Buscamos los idiomas
  st:=CH_directorio+'LANG\IDI_*.ini';
  fileattrs:=faReadOnly+faHidden+faSysFile+faArchive+faAnyFile;
  FindFirst(st,fileattrs,sr);

  repeat
    sw:=pchar(CH_directorio+'LANG\'+sr.Name);
    //Leemos a ver si es un fichero correcto
    f:=tinifile.Create(sw);
    try
      st:=f.ReadString('GENERAL','IDG','');
      st1:=f.ReadString('GENERAL','ID1','');
      st2:=f.ReadString('GENERAL','ID2','');
    finally
      f.Destroy;
    end;

    if (st='IDENTIFICADOR_APP')and(st1<>'')and(st2<>'') then
     begin
       IDI_numero:=IDI_numero+1;
       setlength(IDI_idiomas,IDI_numero);
       IDI_idiomas[IDI_numero-1].idioma:=st1;
       IDI_idiomas[IDI_numero-1].ID:=st2;
       IDI_idiomas[IDI_numero-1].fichero:=sw;
     end;
  until FindNext(sr)<>0;
  FindClose(sr);
  //OPCIONAL: La siguiente línea carga los nuevos idiomas en un Tmenuitem para que se puedan seleccionar y cambiar por el usuario.
  IDI_pre_carga_menuitem;
 //La siguiente línea carga las cadenas de texto del idioma predefinido
  if IDI_cual_def>=0 then
   begin
      IDI_cambia_idioma(IDI_cual_def);
   end;

end;

Espero que os sirva. Luego solo hay que crear el procedimiento "IDI_cambia_idioma" y leer las cadenas del fichero de idioma asignado y cambiarla a los componentes y cadenas del programa.
__________________
Donde Trabajo ahora --> http://cct-inc.co.jp/
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Idiomas en una aplicación madiazg API de Windows 4 12-03-2008 17:20:05
Aplicación en varios idiomas. Killo Varios 11 17-03-2007 17:40:45
Como traducir el idioma de mi aplicacion? JuanErasmo C++ Builder 1 30-12-2005 15:17:11
Aplicacion Multi-idiomas - MessageBox Traducir en run-time le4br Varios 2 19-03-2005 21:35:31
Hacer una aplicación en varios idiomas David OOP 2 02-03-2005 19:28:34


La franja horaria es GMT +2. Ahora son las 23:39:50.


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