调用 Google 翻译的地址格式:

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


返回的数据格式如下, 可以用 responseData.translatedText 简单获取:

  1. {
  2. "responseData" : {"translatedText" : "返回的文本"},
  3. "responseDetails" : null,
  4. "responseStatus" : 200
  5. }

本例效果图:


代码文件:


  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, StdCtrls;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     Memo1: TMemo;
  12.     Memo2: TMemo;
  13.     Button1: TButton;
  14.     Button2: TButton;
  15.     procedure Button1Click(Sender: TObject);
  16.     procedure Button2Click(Sender: TObject);
  17.   end;
  18.  
  19. var
  20.   Form1: TForm1;
  21.  
  22. implementation
  23.  
  24. {$R *.dfm}
  25.  
  26. uses MsXML, SuperObject;
  27.  
  28. //字符串到 UTF8 编码的函数, 用于 Google 地址
  29. function ToUTF8Encode(str: string): string;
  30. var
  31.   b: Byte;
  32. begin
  33.   for b in BytesOf(UTF8Encode(str)) do
  34.     Result := Format('%s%s%.2x', [Result, '%', b]);
  35. end;
  36.  
  37. //翻译函数
  38. function Translate(str, RequestLanguage, ResultLanguage: string): string;
  39. const
  40.   BaseUrl = 'http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=';
  41. var
  42.   Url: string;
  43.   jo: ISuperObject;
  44.   req: IXMLHTTPRequest;
  45. begin
  46.   Url := BaseUrl + ToUTF8Encode(str) + '&langpair=' + RequestLanguage + '%7C' + ResultLanguage;
  47.   req := CoXMLHTTP.Create;
  48.   req.open('Get', Url, False, EmptyParam, EmptyParam);
  49.   req.send(EmptyParam);
  50.   jo := SO(req.responseText);
  51.   Result := jo.Format('%responseData.translatedText%');
  52. end;
  53.  
  54. //英译汉
  55. procedure TForm1.Button1Click(Sender: TObject);
  56. begin
  57.   Memo2.Text := Translate(Memo1.Text, 'en', 'zh-cn');
  58. end;
  59.  
  60. //汉译英
  61. procedure TForm1.Button2Click(Sender: TObject);
  62. begin
  63.   Memo1.Text := Translate(Memo2.Text, 'zh-cn', 'en');
  64. end;
  65.  
  66. end.

窗体文件:


  1. object Form1: TForm1
  2.   Left =
  3.   Top =
  4.   Caption = 'Form1'
  5.   ClientHeight =
  6.   ClientWidth =
  7.   Color = clBtnFace
  8.   Font.Charset = DEFAULT_CHARSET
  9.   Font.Color = clWindowText
  10.   Font.Height = -
  11.   Font.Name = 'Tahoma'
  12.   Font.Style = []
  13.   OldCreateOrder = False
  14.   PixelsPerInch =
  15.   TextHeight =
  16.   object Memo1: TMemo
  17.     Left =
  18.     Top =
  19.     Width =
  20.     Height =
  21.     Align = alLeft
  22.     Lines.Strings = (
  23.       'Memo1')
  24.     TabOrder =
  25.     ExplicitHeight =
  26.   end
  27.   object Button1: TButton
  28.     Left =
  29.     Top =
  30.     Width =
  31.     Height =
  32.     Caption = #33521#25991' -> '#20013#25991
  33.     TabOrder =
  34.     OnClick = Button1Click
  35.   end
  36.   object Memo2: TMemo
  37.     Left =
  38.     Top =
  39.     Width =
  40.     Height =
  41.     Align = alRight
  42.     Lines.Strings = (
  43.       'Memo2')
  44.     TabOrder =
  45.     ExplicitLeft =
  46.     ExplicitTop = -
  47.     ExplicitHeight =
  48.   end
  49.   object Button2: TButton
  50.     Left =
  51.     Top =
  52.     Width =
  53.     Height =
  54.     Caption = #33521#25991' <- '#20013#25991
  55.     TabOrder =
  56.     OnClick = Button2Click
  57.   end
  58. end

XE3随笔19:实例 - 借用 Google 实现全文翻译的更多相关文章

  1. 用JSON 和 Google 实现全文翻译

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  2. Python爬虫教程-16-破解js加密实例(有道在线翻译)

    python爬虫教程-16-破解js加密实例(有道在线翻译) 在爬虫爬取网站的时候,经常遇到一些反爬虫技术,比如: 加cookie,身份验证UserAgent 图形验证,还有很难破解的滑动验证 js签 ...

  3. GDPR全文翻译(一)

    General Data Protection Regulation <一般数据保护法案>全文翻译(一) 编者按 2016年4月14日,欧洲议会投票通过了商讨四年的<一般数据保护法案 ...

  4. the evolution of Lua 全文翻译

    终于赶在春节前将论文全文翻译完,以后有时间将前面三章重新翻译一次,因为刚开始的时候没打算全文翻译的..第一次每天花25分钟完成这么长的一篇翻译,证明滴水可以穿石,哈哈哈 中文地址:Lua的演进 祝各位 ...

  5. 关闭google默认打开翻译提醒

    关闭google默认打开翻译提醒 在header中添加以下代码: <meta name="google" content="notranslate" /& ...

  6. XE3随笔18:实例 - 解析 Google 关键字搜索排名

    同上例类似, 通过 'http://clients1.google.cn/complete/search?&q=' + "关键字" 可以获取 Google 的关键字搜索排名 ...

  7. XE3随笔17:实例 - 模拟 Google 搜索

    本例测试效果图: 代码文件: unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics ...

  8. 借用Google API在线生成网站二维码地址方法

    二维码其实很早就出现了,在国外很多年前就已经在应用了,国内这两年才开始异常的火爆,智能手机的发展,以及微博.微信等移动应用带动了二维码的普及.那么,如果为网址在线生成二维码呢?下面我们就来介绍一下Go ...

  9. Android实例-调用GOOGLE的TTS实现文字转语音(XE7+小米2)(无图)

    注意:在手机上必须选安装文字转语音引擎“google Text To Speech”地址:http://www.shouji56.com/soft/GoogleWenZiZhuanYuYinYinQi ...

随机推荐

  1. Jquery day02

    jquery day01回顾 语法: $("选择器")        , $(dom对象) , $("<div>") 选择器: 基本:#id.ele ...

  2. Windows程序设再读笔记02-Unicode

    1.ASCII,7位编码,共128个编码,1950年ansi提出. 2.变种的Ascii,0x40等10个代码保留各个国家单独使用,1967年由iso提出.旨在解决重音符号,英镑符号的问题. 3.扩展 ...

  3. Nodejs+Express创建HTTPS服务器

    为了使我的Nodejs服务器提供HTTPS服务,学习了一下如何利用express创建https服务器,现记录如下.(一点一点的积累与掌握吧) 1. Http与Https 介绍 HTTP: 超文本传输协 ...

  4. xml---sax操作

    <?xml version="1.0" encoding="UTF-8"?> <书架> <书> <书名>书名1& ...

  5. Centos 6.5 下php5.6.2 的编译安装

    纯净的Centos 6.5系统 配置163yum源 (稍后会写一篇文档) 安装  开发软件包:yum  -y groupinstall  "Development Tools" 安 ...

  6. C语言的文法分析

    <程序>  ->   <声明> | <程序> <函数> <声明>  ->   #include<stdio.h>|# ...

  7. linux 学习1

    这里主要是听讲的一些东西的总结, thanks to lamp brother ____安装虚拟机 vmware 8.0.4, 因为高版本占用空间大,没必要 cent OS 6.3 linux 版本 ...

  8. 【原】相煎何太急——input的blur事件与button的click事件

    先来一段引子,最近在写手机h5页面,主要是一些登陆注册方面的,最绕不开的就是表单元素. 我想实现的是:在输入框后边有一个删除图标,当输入东西的时候触发事件,显示删除图标,点击该图标会删除之前输入的内容 ...

  9. SQL 高效分页查询

    declare @page int --页码 declare @pagecount int;--每一页显示的记录数 select * from (select *,row_number() over( ...

  10. Python3

    1.上节内容回顾 递归: 明确的结束条件 问题规模每递归一次都应该比上一次的问题规模有所减少 效率低 高阶函数 文件: rb.wb.ab 一般用在不同系统之间传数据,和传视频流的时候用到,一般以这种形 ...