您的位置:首页 > 编程语言 > Delphi

在 Delphi 中使用微软全文翻译的小例子

2021-04-29 23:46 225 查看 https://blog.51cto.com/u_14617

   在 Delphi 中使用微软全文翻译的小例子    


刚刚从博客园看到有朋友用 C# 做了这么个东西, 我用 Delphi 尝试了一下.

需要先去申请一个 AppID: http://www.bing.com/toolbox/bingdeveloper/
使用帮助在: http://msdn.microsoft.com/en-us/library/dd576287.aspx


uses MsXML;

{函数}
function Translate(AAppID: string; AText: string; InLanguage: string='en'; OutLanguage: string='zh-CHS'): string;
const
  BaseUrl = 'http://api.microsofttranslator.com/V2/http.svc/Translate?appId=%s&text=%s&from=%s&to=%s';
var
  Url: string;
  req: IXMLHTTPRequest;
begin
  Url := Format(BaseUrl, [AAppID, AText, InLanguage, OutLanguage]);
  req := CoXMLHTTP.Create;
  req.open('Get', Url, False, EmptyParam, EmptyParam);
  req.send(EmptyParam);
  Result := req.responseText;
  Result := Copy(Result, 68+1, Length(Result)-68-9); //去掉前后的标签
end;

{调用测试}
procedure TForm1.Button1Click(Sender: TObject);
const
  myAppId = '65FCA293BDB85C98D16A567C3FECE22272B6****'; //这是我申请的 AppID, 隐藏了后四位
begin
  Memo2.Text := Translate(myAppId, Memo1.Text);
end;


效果图:


使用 Indy:


uses IdHTTP;

function Translate2(AAppID: string; AText: string; InLanguage: string='en'; OutLanguage: string='zh-CHS'): string;
const
  BaseUrl = 'http://api.microsofttranslator.com/V2/http.svc/Translate?appId=%s&text=%s&from=%s&to=%s';
var
  Url: string;
  stream: TStringStream;
  idHttpObj: TIdHTTP;
begin
  stream := TStringStream.Create;
  idHttpObj := TIdHTTP.Create(nil);
  Url := Format(BaseUrl, [AAppID, Trim(AText), InLanguage, OutLanguage]);
  idHttpObj.Get(Url, stream);
  Result := stream.DataString;
  Result := Copy(Result, 68+1, Length(Result)-68-9); //去掉前后的标签
  idHttpObj.Free;
  stream.Free;
end;


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: