打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
JSON 之 SuperObject(17): 实例

调用 Google 翻译的地址格式:

http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=" + 原始文本 + "&langpair=" + 原语言 + "%7C" + 目标语言

返回的数据格式如下, 可以用 responseData.translatedText 简单获取:
{  "responseData" : {"translatedText" : "返回的文本"},   "responseDetails" : null,   "responseStatus" : 200}

本例效果图:



代码文件:
unit Unit1;interfaceuses  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.

窗体文件:
object Form1: TForm1  Left = 0  Top = 0  Caption = 'Form1'  ClientHeight = 139  ClientWidth = 459  Color = clBtnFace  Font.Charset = DEFAULT_CHARSET  Font.Color = clWindowText  Font.Height = -11  Font.Name = 'Tahoma'  Font.Style = []  OldCreateOrder = False  PixelsPerInch = 96  TextHeight = 13  object Memo1: TMemo    Left = 0    Top = 0    Width = 185    Height = 139    Align = alLeft    Lines.Strings = (      'Memo1')    TabOrder = 0    ExplicitHeight = 202  end  object Button1: TButton    Left = 191    Top = 24    Width = 75    Height = 25    Caption = #33521#25991' -> '#20013#25991    TabOrder = 1    OnClick = Button1Click  end  object Memo2: TMemo    Left = 274    Top = 0    Width = 185    Height = 139    Align = alRight    Lines.Strings = (      'Memo2')    TabOrder = 2    ExplicitLeft = 312    ExplicitTop = -8    ExplicitHeight = 202  end  object Button2: TButton    Left = 191    Top = 72    Width = 75    Height = 25    Caption = #33521#25991' <- '#20013#25991    TabOrder = 3    OnClick = Button2Click  endend

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
JSON 之 SuperObject(15): 实例
Delphi 的内存操作函数(6): 跨进程的内存分配
广州高深商电子技术有限公司-新闻发布
delphi使用IdTcpClient和IdTcpServer数据通信
Delphi 的接口
详测 Generics Collections TDictionary(5): 多种 Cr...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服