Переводчик с русского на английский на Delphi

Подскажите, пожалуйста, необходимо в программе текст с русского перевести на английский ... с английского на русский переводится, а наоборот никак.... в чем проблема не понимаю... плиз helpпривожу 2 процедуры исходника:
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;
___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (кнопочка на панели форматирования с решёточкой #) Не забывайте об этом!Модератор.
7 ответов

Может опять проблема с юникодом в Инди? Я сталкивался - морочная штука, передает фиг-зна-што. Попробуй что-ли с TEncoding переводить отсылаемый текст...


может я не правильно передаю параметры в translate google? , текст на русском в юникоде выглядит также, если бы напрямую переводить в google, но почему то сама функция post возвращает тот же самый текст в юникоде, который и передается...т.е. на русском.... почему не отрабатывает перевод???


А ты не Post попробуй а Get.


C Get вообще что-то заморочилась, пробую выдает сплошные ошибки и параметры как передать для перевода тогда не ясно.....


raxp Спасибо большое за ссылку!!! - попробую...


...попробуйте, попробуйте. Тут выкладывал разные прикладные применения всего этого, пошарьтесь по каналу.