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