
24.09.2013, 15:42
|
 |
Заблокирован
|
|
Регистрация: 23.09.2013
Адрес: Астана
Сообщения: 34
Версия Delphi: Delphi 7
Репутация: -1244
|
|
переводчик на Delphi!
Сегодня задали дом. задание надеюсь на вашу помош вобщем нада перевести текст с русского на англиский...с англиского на русский переводится а наоброт нет...в чем проблема не понимаю
Код:
function urlEncode(const URL: WideString): AnsiString;
var
i: Integer;
utf8: AnsiString;
begin
result := '';
utf8 := UTF8Encode(URL);
//
for i := 1 to length(utf8) do begin
//
case (utf8[i]) of
' ': result := result + '+';
'0'..'1', 'A'..'Z', 'a'..'z', '-', '_': result := result + utf8[i];
else
result := result + '%' + AnsiString(IntToHex(byte(utf8[i]), 2));
end;
end;
end;
function TForm1.Translate_Google(text, myLang, toLang:string): string;
var
idHTTP1: TidHTTP;
data: TStringList;
Response: TStringStream;
s: string;
k, n: integer;
begin
data:= TStringList.Create;
idHTTP1:= TIdHTTP.Create(nil);
text:=URLEncode(text);
text:= StringReplace(StringReplace(StringReplace(text, #13#10, ' ', [rfReplaceAll]), '...', '',[rfReplaceAll]), '.', ',', [rfReplaceAll]);
data.Add('client=x');
data.Add('text=' + text);
data.Add('hl=ru');
data.Add('sl='+myLang);
data.Add('tl='+toLang);
data.add('multires=1');
data.add('otf=1');
data.add('sc=1');
Response:= TStringStream.Create('');
try
Idhttp1.Post('http://translate.google.ru/translate_a/t', data, Response);
except
ShowMessage('ррр' + #13#10 +'ррр');
end;
s:= Response.DataString;
k:= Pos('trans":"', s);
n:= PosEx('","', s, k);
s:= Copy(s, k + 8, n - k - 8);
// result:= Koi_WinConvert(s); // from ENG to RUS
result:= s;// from RUS to ENG
data.Free;
idHTTP1.Free;
end;
|