Olha, eu acho q vc pode trabalhar com arquivos de recursos...
é assim: vc cria um txt com as strings, obedecendo um índice.

StringTable
begin
   1,   "Arquivo"
   2,   "Novo"
   3,   "Abrir"
   4,   "Salvar"
   5,   "Salvar Como..."
   6,   "Fechar"
   7,   "Sair"

   1001,   "File"
   1002,   "New"
   1003,   "Open"
   1004,   "Save"
   1005,   "Save as..."
   1006,   "Close"
   1007,   "Exit"
end

repare q criei 1, 2, 3... depois 1001, 1002, 1003... isso, pra poder separar as 
linguas. Mas veja: o 1, 1001, 2001, etc... são a mesma palavra, só q em idiomas 
diferentes. Dessa forma, vc pode ter um só arquivo executável para várias 
linguas.
Depois vc vai rodar o BRCC32.EXE, um utilitário q fica dentro da pasta BIN do 
delphi. Nesse caso, vc vai precisar de conhecer o DOS... 
Você roda assim:

BRCC32 nomedoarquivo.txt

ele vai gerar um arquivo com a extensão .RES, com o mesmo nome do arquivo q vc 
compilou.
Daí, é só entrar com a programação...


no seu form principal, vc adiciona uma constante:

CONST
   PORTUGUES = 0;
   INGLES         =  1000;


Cria uma var publica para escolher a linguagem: 
VAR 

   LINGUAGEM :  INTEGER;


adicione a diretiva $R:

{$R NOMEDOARQUIVO.RES}
(coloque abaixo onde já exista a diretiva $R, mas não apague!!!!)

no oncreate, vc faz:
   LINGUAGEM := PORTUGUES; //OU QQ OUTRA Q VC FEZ



e complementa:

   Label1.caption := LoadStr(1+Linguagem);
   Label2.caption := LoadStr(2+Linguagem);
   Label3.caption := LoadStr(3+Linguagem);
   Label4.caption := LoadStr(4+Linguagem);
   Label5.caption := LoadStr(5+Linguagem);
   Label6.caption := LoadStr(6+Linguagem);
   Label7.caption := LoadStr(7+Linguagem);


onde 1 é o índice q veio da stringtable...

Se precisar de alguma ajuda, pode contar comigo.

Mais fácil q isso, só doce de côco...  ou então vc copia abaixo:


unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

Const
   Portugues = 0;
   Ingles    = 1000;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    Linguagem : integer;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
{$R MENS.RES}

procedure TForm1.Button1Click(Sender: TObject);
begin
   Label1.caption := LoadStr(1+Linguagem);
   Label2.caption := LoadStr(2+Linguagem);
   Label3.caption := LoadStr(3+Linguagem);
   Label4.caption := LoadStr(4+Linguagem);
   Label5.caption := LoadStr(5+Linguagem);
   Label6.caption := LoadStr(6+Linguagem);
   Label7.caption := LoadStr(7+Linguagem);
end;

   
procedure TForm1.FormCreate(Sender: TObject);
begin
   Linguagem := portugues;
end;

end.








  De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Angelo 
Zanini Paim
  Enviada em: domingo, 11 de junho de 2006 16:01
  Para: delphi-br@yahoogrupos.com.br
  Assunto: [delphi-br] idiomas


  Preciso dispor em meu sistema uma escolha para diversos idiomas.
  A solução mais óbvia seria criar um arquivo para cada idioma e, na
  criação do form, ler do arquivo referente ao idioma selecionado, o
  rótulo de cada componente. Isso me tomaria um tempo absurdo já que são
  pouco mais de 150 forms.
  Qual a melhor maneira de criar opções de idiomas?

  obrigado a todos.







  [As partes desta mensagem que não continham texto foram removidas]



[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

<*> Para ver as mensagens antigas, acesse:
    http://br.groups.yahoo.com/group/delphi-br/messages

<*> Para falar com o moderador, envie um e-mail para:
    [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a