用JSON 和 Google 实现全文翻译

ExpandedBlockStart.gif 代码
unit  Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 
=   class (TForm)
    Memo1: TMemo;
    Memo2: TMemo;
    Button1: TButton;
    Button2: TButton;
    
procedure  Button1Click(Sender: TObject);
    
procedure  Button2Click(Sender: TObject);
  
end ;

var
  Form1: TForm1;

implementation

{ $R *.dfm }

uses  MsXML, SuperObject;

// 字符串到 UTF8 编码的函数, 用于 Google 地址
function  ToUTF8Encode(str:  string ):  string ;
var
  b: Byte;
begin
  
for  b  in  BytesOf(UTF8Encode(str))  do
    Result :
=  Format( ' %s%s%.2x ' , [Result,  ' % ' , b]);
end ;

// 翻译函数
function  Translate(str, RequestLanguage, ResultLanguage:  string ):  string ;
const
  BaseUrl 
=   ' http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q= ' ;
var
  Url: 
string ;
  jo: ISuperObject;
  req: IXMLHTTPRequest;
begin
  Url :
=  BaseUrl  +  ToUTF8Encode(str)  +   ' &langpair= '   +  RequestLanguage  +   ' %7C '   +  ResultLanguage;
  req :
=  CoXMLHTTP.Create;
  req.open(
' Get ' , Url, False, EmptyParam, EmptyParam);
  req.send(EmptyParam);
  jo :
=  SO(req.responseText);
  Result :
=  jo.Format( ' %responseData.translatedText% ' );
end ;

// 英译汉
procedure  TForm1.Button1Click(Sender: TObject);
begin
  Memo2.Text :
=  Translate(Memo1.Text,  ' en ' ' zh-cn ' );
end ;

// 汉译英
procedure  TForm1.Button2Click(Sender: TObject);
begin
  Memo1.Text :
=  Translate(Memo2.Text,  ' zh-cn ' ' en ' );
end ;

end .

 

转载于:https://www.cnblogs.com/jxgxy/archive/2010/01/25/1655821.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值