谷歌百度翻译器

目录

  • 说明
  • 设计
  • 使用
  • 已知缺陷
  • 源码地址

说明

由于项目需要,我整理了网上一些跟在线翻译有关的资料,做了一个整合Google和百度翻译的Demo程序。大概工作就是将Google翻译和百度翻译的Web在线版本功能移植PC客户端,用的是它们提供的一些翻译API(非付费)。功能简单,原理也不复杂,记下来希望能够帮助一些人。以下是截图:

设计

“麻雀虽小五脏俱全”,由于支持两种翻译方式,所以可以将一些共性抽象出来,放在一个独立的接口当中(假如以后扩展更多种翻译方式,也会方便很多)。我们定义一个“翻译接口”ITranslator,负责翻译的两个类分别为GoogleTranslator和BaiduTranslator。ITranslator接口代码如下:

 1  /// <summary>
 2  /// 翻译器接口  所有翻译器必须实现该接口
 3  /// </summary>
 4  interface ITranslator
 5  {
 6         /// <summary>
 7         /// 翻译方法
 8         /// </summary>
 9         /// <param name="srcTxt"></param>
10         /// <param name="srcLanguage"></param>
11         /// <param name="desLanguage"></param>
12         /// <returns></returns>
13         string TranslateText(string srcTxt, string srcLanguage, string desLanguage);
14         /// <summary>
15         /// 翻译结果发音URL
16         /// </summary>
17         string TranslateSpeechURL
18         {
19             get;
20         }
21         /// <summary>
22         /// 所有支持的语言
23         /// </summary>
24         List<string> AllSupportedLanguages
25         {
26             get;
27         }
28         /// <summary>
29         /// 本次翻译耗时
30         /// </summary>
31         double TranslateTime
32         {
33             get;
34         }
35  }

两个翻译类(GoogleTranslator和BaiduTranslator)均实现该接口。UI界面直接依赖于ITranslator接口,不会直接依赖于两个具体的翻译类:

以上是“依赖倒置原则”最简单的应用场合。

使用

使用很简单,定义一个ITranslator接口即可:

 1 itranslator = new GoogleTranslator();
 2 //翻译
 3 string translated_string = itranslator.TranslateText("我是一个地球人 ——来自Google的翻译", "中文", "英语");
 4 //翻译结果朗读URL
 5 string speechURL = itranslator.TranslateSpeechURL;
 6 //翻译耗时(毫秒)
 7 int translate_time = (int)itranslator.TranslateTime;
 8
 9 itranslator = new BaiduTranslator();
10 //翻译
11 translated_string = itranslator.TranslateText("我是一个地球人 ——来自百度的翻译", "中文", "德语");
12 //翻译结果朗读URL
13 speechURL = itranslator.TranslateSpeechURL;
14 //翻译耗时(毫秒)
15 translate_time = (int)itranslator.TranslateTime;

后续如果有更多种翻译方式,可以参照GoogleTranslator和BaiduTranslator的实现。具体代码我就不贴了,源码中注释很详细。请求Web Server时用到了WebClient和WebRequest/WebResponse(前者较后者更高层、更抽象)。

已知缺陷

  • 由于有些词语并没有得到支持,所以翻译的朗读效果并不太好。
  • 而且程序中是通过“http://tts.baidu.com/text2audio?lan=zh&ie=UTF-8&text=博客园”这种方式去加载音频文件的,如果语句太长,官方web版本中是分多次加载音频数据,但是程序中并没有做如此处理,所以可能抛出异常。
  • 另外,音频是通过一个简单的WebBrowser控件加载的,在有些环境中,并不能直接朗读,需要打开系统自带的media palyer进行播放。
  • 程序中在解析服务器返回来的Json数据时,并不严格(可以说是很随便)。建议实际使用过程中,可以采用专门的JSON解析工具。

源码地址

http://files.cnblogs.com/files/xiaozhi_5638/Translator.rar

时间: 2024-08-30 13:06:33

谷歌百度翻译器的相关文章

jQuery实现TEXT文本框输入时的提示信息(谷歌百度淘宝搜索框提示实现)

在搜索框中,输入之前框内有输入的提示信息,文本框获得焦点后会自动消失的效果,效果图如下: 鼠标放在文本框时的效果: 创建工具类(已经存在就不用创建了)Util.js(DWR的JS) 在里面添加如下方法: Js代码 /** * Input框里的灰色提示,使用前先引入jquery * <br>使用方法:<input type="text" tipMsg="您的用户名"   /> * * @return */ function inputTipTe

Html5高拍仪SDK支持谷歌 百度 火狐 360 QQ IE等浏览器

为响应客户要求及技术发展新趋势,我司高拍仪WEB控件包已支持谷歌.火狐.百度.360.QQ.IE10及以上等支持HTML5的浏览器. http://www.imgexpress.cn/news/34-cn.html 原文地址:https://blog.51cto.com/14306103/2384753

初触Python,关于pyquery解析html(百度贴吧)

一直听同事说Python是个奇妙的语言,上周在逛知乎的时候深受这个话题的启示. 能利用爬虫技术做到哪些非常酷非常有趣非常实用的事情? 先是说到IDE的选择,作为python新人,尽管知道mac终端自带Python,但在一番谷歌百度之后,还是选择了PyCharm .理由大概是 PyCharm比較像xcode吧.看上去有种亲切感. Python的第三方库和iOS开发的第三方库大体相像.可是在引入第三方库的时候,PyCharm似乎是更加的简单.注意选择相应的版本号然后下载第三方库,稍等片刻就成功了.

谷歌替代品(转自知乎//德高@http://www.zhihu.com/question/32325106/answer/55553948)

一哥搜(http://Egeso.com)没别的,就是速度快. 还有很多在特殊的地方和特殊的时间,流畅顺利的打开一个网站也变得如此艰难. 2015.7.19 更新.新增谷歌学术列表! 本文将不定期维护更新,删除不能用的,增加新的可用网址.欢迎 Ctrl+D 收藏.列表中有些打不开可能是 DNS污染 的原因,可以参考 DNS劫持 DNS污染 介绍 与 公共DNS 推荐 一文尝试解决. 以下镜像站分原版.非原版和智能跳转.非原版的界面有些改变,搜索结果依然与原版相同.智能跳转是在搜索时自动检测使用可

离线谷歌地图API的开发笔记(二)

一.地图引擎介绍 离线地图引擎运行在WINDOWS平台上,底层由Visual c++语言开发,编译为OCX插件方式.占用文件少,便于二次开发的快速安装部署. 具有专业地图的基础操作功能:地图放大.缩小.移动.测量距离,测量面积. 支持以下矢量操作:点.线.面.透明矩形.透明圆形.箭头等添加/编辑/删除操作. 软件支持操作系统:Windows98/Me/2000/XP/win7/win8/win10 支持VB,VC,Delphi,C#等开发工具的二次开发, 从此可以专注于您的专业领域,不再为地图开

Google 谷歌网页搜索, 学术搜索

Google 谷歌网页搜索, 学术搜索 1. 网页搜索引擎-Google * https://letsgg.tk/ * https://google.kfd.me/ 谷歌搜索镜像:  http://dir.scmor.com/google/ 2. 学术搜索引擎,包括谷歌,百度,微软...等  --网址: http://guog.org/ 3. Google Github 代码搜索 谷歌和GitHub宣布,谷歌BigQuery现在为GitHub上280多万个托管开源项目提供了一个完整的快照.这让用

如何为你的网站设置404页面(转)

一个好的网站,拥有一个好的 404页面 是标配. 为何要有 404页面?如何设置一个 404页面? why 404 pages? 在本地,比如我打开 localhost/fuck.htm(该文件不存在),HTTP 返回 404 Not Found,同时页面展示如下: 用户体验很差有木有!更重要的是,如果没有 404页面,会影响 SEO. 为什么说会影响 SEO 呢? 当你的网站有些页面地址(路径)改变了.或者内容被删除了,导致原地址访问本页面时,提示页面不存在.比如说你网站改版,也会导致很多原来

linux下自动检测服务端口是否正常监听。

脚本说明: 1.检查服务器的各端口服务是否正常. 2.服务端口如果没有正常监听,将自动重启该端口服务,记录日志,并发邮件通知管理员. 3.让crontab每5分钟自动执行该脚本. 4.脚本调用了sendEmail来发邮件,请自行谷歌百度装sendEmail.再次提醒是sendEmail 不是sendmail  ... [[email protected] ~]# cat monitor.sh #!/bin/bash # # description:  service check export P

Ubuntu16.04下使用sublime text3搭建Python IDE

本来是想用pycharm,但你看它的内存要求,我的虚拟机一共也就1G Vim太别扭了,就算有代码颜色,不能自动对齐,不能规范格式,跳转到函数定义,显示文档,要配置起来太费劲,所以就尝试着用sublime text3 来搭建Python IDE 安装sublime text3 目前最简单的方法是通过ppa安装,打开终端,输入以下命令: sudo add-apt-repository ppa:webupd8team/sublime-text-3 sudo apt-get update sudo ap