程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> JSON 之 SuperObject(17): 實例 - 借用 Google 實現全文翻譯

JSON 之 SuperObject(17): 實例 - 借用 Google 實現全文翻譯

編輯:Delphi

調用 Google 翻譯的地址格式:

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

  返回的數據格式如下, 可以用 responseData.translatedText 簡單獲取:

{ 
 "responseData" : {"translatedText" : "返回的文本"}, 
 "responseDetails" : null, 
 "responseStatus" : 200 
} 

  本例效果圖:

  JSON 之 SuperObject(17): 實例 - 借用 Google 實現全文翻譯

  代碼文件:

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. 

 窗體文件:

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 
 end 
end 



  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved