Я уперся рогом и все таки смог найти решение для вас. Гугль любит разработчиков, и обычно оставляет им возможность пользоваться сервисами бесплатно. И в этот раз чутьё не подвело. Вот решение:
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo,
System.JSON,
System.Net.HTTPClient,
System.NetEncoding;
type
TForm1 = class(TForm)
Memo1: TMemo;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
function GoogleTranslate(const AValue : String) : String;
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.FormShow(Sender: TObject);
Var S : String;
begin
S:=GoogleTranslate('Hello world!');
Memo1.Lines.Add(S);
end;
function TForm1.GoogleTranslate(const AValue : String) : String;
const ConstSourceLang = 'en';
ConstTargetLang = 'ru';
var AResponce : IHTTPResponse;
FHTTPClient : THTTPClient;
AAPIUrl : String;
begin
AAPIUrl:='https://translate.googleapis.com/translate_a/single?client=gtx&sl=' + ConstSourceLang +
'&tl=' + ConstTargetLang + '&dt=t&q=' + TNetEncoding.URL.Encode(AValue);
FHTTPClient:=THTTPClient.Create;
FHTTPClient.UserAgent:='Mozilla/5.0 (Windows; U; Windows NT 6.1; ru-RU) Gecko/20100625 Firefox/3.6.6';
Result:='Translate Error : ';
AResponce:=FHTTPClient.Get(AAPIUrl);
if Not Assigned(AResponce) then
begin
Result:=Result + 'unknow.';
Exit;
end;
if AResponce.StatusCode <> 200 then
begin
Result:=Result + AResponce.StatusText;
end;
try
Result:=TJSONArray(TJSONArray(TJSONArray(TJSONObject.ParseJSONValue(AResponce.ContentAsString)).Items[0]).Items[0]).Items[0].Value;
except
Result:=Result + 'error parse JSON.';
Exit;
end;
end;
end.
Подправил код, сделал покрасивее и убрал deprecated encode.