Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #20  
Antiguo 31-07-2010
Avatar de matabyte
matabyte matabyte is offline
Miembro
 
Registrado: ene 2008
Ubicación: Kyoto, Japon
Posts: 177
Poder: 19
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
 



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 18:25:02.


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