Usando o tradutor do Google no delphi
Domingo, 25 dUTC Maio dUTC 2008
Para fazer o teste eu montei uma tela básica com 2 TComboBox( cbxIdiomaOrigem, cbxIdiomaDestino), 2 TMemo( mmoOerigem, mmoDestino), e um botão.
Não se esqueça de declarar as seguintes units IdHTTP, HTTPApp, StrUtils;

Ao clicar no botão traduzir o seguinte código será executado
//Associar evento ao ao botão
procedure TForm1.TraduzirClick(Sender: TObject);
//função para traduzir
function translate(ss,lng1, lng2:string):string;
var s:widestring;
a,b:integer;
http:TIdHTTP;
begin
//cria um componente TIdHttp(usando o Indy)
http:= TIdHTTP.Create;
try
//Efetua um get passando como parametros
//o texto e o par de idiomas
s:=http.Get('http://translate.google.com/translate_t?text='
+httpencode(ss)+'&sl='+lng1+'&tl='+lng2);
//pega o texto traduzido na resposta "s"(html com a resposta)
a:=posex('>',s,pos('id=result_box',s));
b:=posex('</div>',s,a);
//e retorna
result:=copy(s,a+1,b-a-1);
finally
http.Free;
end;
end;
var lng1, lng2: String;
begin
//verifica se os 2 idiomas estão selecionados
if (cbxIdiomaDestino.ItemIndex =-1) or
(cbxIdiomaOrigem.ItemIndex = -1) then
raise Exception.Create('Escolha o Idioma de origem e Destino');
//pega os idiomas dos Combos
lng1 := PCHAR(Integer(cbxIdiomaOrigem.Items.Objects[cbxIdiomaOrigem.ItemIndex]));
lng2 := PCHAR(Integer(cbxIdiomaDestino.Items.Objects[cbxIdiomaDestino.ItemIndex]));
//chama a tradução
mmoDestino.Text := translate(mmoOrigem.Text, lng1, lng2);
end;
Para carregar a lista de idiomas declare uma constante
const LANGUAGE : array[ 1..23, 1..2] of String = (('de','Alemão'),
('ar','Árabe'),
('bg','Búlgaro'),
('zh-CN','Chinês'),
('ko','Coreano'),
('hr','Croata'),
('da','Dinamarquês'),
('es','Espanhol'),
('fi','Finlandês'),
('fr','Francês'),
('el','Grego'),
('hi','Hindi'),
('nl','Holandês'),
('en','Inglês'),
('it','Italiano'),
('ja','Japonês'),
('no','Norueguês'),
('pl','Polonês'),
('pt','Português'),
('ro','Romeno'),
('ru','Russo'),
('sv','Sueco'),
('cs','Tcheco'));
E no Evento onCreate do Form execute
//associa ao OnCreate do Form
procedure TForm1.FormCreate(Sender: TObject);
var i, j: Integer;
idioma: PCHAR;
begin
//preenche os combos com os idiomas
cbxIdiomaOrigem.Items.Clear;
for i := Low(LANGUAGE) to High(LANGUAGE) do
begin
GetMem(idioma, 1 + Length(LANGUAGE[i,1]));
StrPCopy(idioma, LANGUAGE[i,1]);
cbxIdiomaOrigem.Items.AddObject(LANGUAGE[i,2], TObject(Integer(idioma)));
end;
cbxIdiomaDestino.Items.Assign(cbxIdiomaOrigem.Items);
end;
Sexta-Feira, 30 dUTC Maio dUTC 2008 às 19:55 pm
show!
maneiro este código!
você sabe pegar informações de uma página e jogar num combobox?
to tentando desenvolver um chat cliente!
delphi => php
delphi <= php
contato no eric.suporte@gmail.com
Quinta-feira, 19 dUTC Junho dUTC 2008 às 9:34 am
Um otimo exemplo da utilização do TidHTTP.
Parabens!