调用google翻译
1. [代码]maven依赖
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version> 4.2 . 1 </version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version> 4.2 . 1 </version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version> 1.2 . 17 </version> </dependency> |
2. [代码]翻译工具类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
public class TranslateUtil { private static Log logger = LogFactory.getLog(TranslateUtil. class ); private static final String URL_TEMPLATE = "http://translate.google.cn/translate_a/single?client=t" ; private static final String ENCODING = "UTF-8" ; private DefaultHttpClient client; private static TranslateUtil translateUtil = new TranslateUtil(); private TranslateUtil() { client = ConnectionManager.getHttpClient(); } public static TranslateUtil getInstance() { return translateUtil; } /** * google翻译(文本自动识别) * * @param text * 要翻译的文本 * @param target_lang * 目标语言 * @return * @throws Exception */ public String translate( final String text, final String target_lang) { return translate(text, Language.AUTO.getValue(), target_lang); } /** * 中午转为英文 * * @param text * @return */ public String cn2en( final String text) { return translate(text, Language.CHINA.getValue(), Language.ENGLISH.getValue()); } /** * 英文转中文 * * @param text * @return */ public String en2cn( final String text) { return translate(text, Language.ENGLISH.getValue(), Language.CHINA.getValue()); } /** * google翻译 * * @param text * 要翻译的文本 * @param src_lang * 源文本语言 * @param target_lang * 目标语言 * @return * @throws Exception */ public String translate( final String text, final String src_lang, final String target_lang) { String result = null ; try { String url = URL_TEMPLATE + "&sl=" + src_lang + "&tl=" + target_lang + "&hl=" + src_lang + "&dt=bd&dt=ex&dt=ld&dt=md&dt=qc&dt=rw&dt=rm&dt=ss&dt=t&dt=at&dt=sw&ie=" + ENCODING + "&oe=" + ENCODING + "&prev=btn&ssel=0&tsel=0&q=" + URLEncoder.encode(text, ENCODING); HttpGet get = new HttpGet(url); HttpResponse response = client.execute(get); String allInfo = EntityUtils.toString(response.getEntity()); String resultArray[] = allInfo.split( "]]" )[ 0 ].split( "]" ); for ( int i = 0 ; i < resultArray.length - 1 ; i++) { resultBuffer.append(resultArray[i].split( "\"" )[ 1 ]); } result = resultBuffer.toString(); result = result.replace( "\\n" , "\r\n" ); } catch (Exception e) { logger.error(e); } return result; } } |
3. [代码]httpclient管理类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
public class ConnectionManager { /** 连接超时时间 */ static final int TIMEOUT = 30000 ; /** 数据传输超时 */ static final int SO_TIMEOUT = 30000 ; static String UA = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1" + " (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1" ; private ConnectionManager() { } public static DefaultHttpClient getHttpClient() { SchemeRegistry schemeRegistry = new SchemeRegistry(); schemeRegistry.register( new Scheme( "http" , 80 , PlainSocketFactory .getSocketFactory())); schemeRegistry.register( new Scheme( "https" , 443 , SSLSocketFactory .getSocketFactory())); PoolingClientConnectionManager cm = new PoolingClientConnectionManager( schemeRegistry); cm.setMaxTotal( 500 ); cm.setDefaultMaxPerRoute( 200 ); HttpParams params = new BasicHttpParams(); params.setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, TIMEOUT); params.setParameter(CoreConnectionPNames.SO_TIMEOUT, SO_TIMEOUT); params.setParameter(CoreProtocolPNames.USER_AGENT, UA); DefaultHttpClient client = new DefaultHttpClient(cm, params); return client; } } |
4. [代码]语言枚举
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
public enum Language { AUTO( "自动" , "auto" ), // TAIWAN( "台湾" , "zh-TW" ), // CHINA( "中文" , "zh-CN" ), // ENGLISH( "英语" , "en" ), // JAPAN( "日文" , "ja" ); // private String name; private String value; private Language(String name, String value) { this .name = name; this .value = value; } public String getName() { return name; } public void setName(String name) { this .name = name; } public String getValue() { return value; } public void setValue(String value) { this .value = value; } } |
5. [代码]测试类
1
2
3
4
5
6
7
|
public class Test { public static void main(String[] args) throws Exception { System.out.println(TranslateUtil.getInstance().translate( "你的名字叫什么" , Language.CHINA.getValue(), Language.ENGLISH.getValue())); } } |
调用google翻译的更多相关文章
- Python调用Google翻译
出自:http://blog.csdn.net/zhaoyl03/article/details/8830806 最近想动手做一个文档自动下载器,需要模拟浏览器的行为.虽然感觉思路上没有困难,但在技术 ...
- Java 调用 google 翻译
1.Java代码 public class Translator { public String translate(String langFrom, String langTo, String wo ...
- node.js调用google翻译api
源码下载:https://pan.baidu.com/s/1nxoodst 使用:(只支持get) http://39.106.33.56:3001/translate?text=Failure is ...
- 添加了有道生词本的 chrome google翻译扩展和有道翻译扩展
在chrome发布项目,需要先花美金认证,还得要美国ID,无奈. 直接上源码,需手动导入. 原始项目源码并未开源,个人是从chrome本地文件里拿出来的,拓展来的,侵删(本来想着自已写一个,业余时间, ...
- Google翻译请求(难点是tk参数)
业务需求需要将一些文字翻译一下··· 但是直接调用接口收费啊啊啊啊(貌似是前几百万字免费,然后就开始收费了)···· 就想研究一下Google翻译接口... 想模拟Google向服务器发送一个Http ...
- Python 调用百度翻译API
由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...
- 破解google翻译API全过程
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/6554340.html 前言 google的翻译不得不承认它 ...
- 获取google翻译的音频文件_合并音频文件的方法
1. 把引文输入google 翻译,然后点击"朗读"
- 桌面每日一句--桌面翻译工具(有道翻译,微软翻译,Google翻译)
现在的翻译软件功能越来越多,也越来越臃肿,还不时弹广告,真的很烦恼. 鉴于这种情况,自己做了个翻译软件,能满足日常需求就好了.需要用的时候可以直接在桌面输入单词翻译,或者直接使用快捷键呼出翻译窗口.最 ...
随机推荐
- 安装Git和图形化软件[SouceTree跳过首次登陆]
安装Git和图形化软件[SouceTree跳过首次登陆] 标签(空格分隔): 版本控制 安装GIT[客户端]: 下载:[https://git-scm.com/downloads/] 安装:[next ...
- java动态导出PDF(利用itext)
项目基于ssm框架,使用itext动态导出pdf文件: 1.引入两个jar包:itextpdf-5.5.5.jar.itext-asian-5.2.0.jar 说明: 1.itextpdf-5.5.5 ...
- ssh 免交互式登陆
脚本: vim key.sh #!/bin/bash#make key\rm -f /root/.ssh/id_dsassh-keygen -t dsa -f /root/.ssh/id_dsa -P ...
- OpenJDK源码研究笔记(六)--观察者模式工具类(Observer和Observable)和应用示例
本文主要讲解OpenJDK观察者模式的2个工具类,java.util.Observer观察者接口,java.util.Observable被观察者基类. 然后,给出了一个常见的观察者应用示例. Obs ...
- 10 hbase源码系列(十)HLog与日志恢复
hbase源码系列(十)HLog与日志恢复 HLog概述 hbase在写入数据之前会先写入MemStore,成功了再写入HLog,当MemStore的数据丢失的时候,还可以用HLog的数据来进行恢 ...
- 从零開始学android<SlidingDrawer 隐式抽屉.三十三.>
SlidingDrawer是一种抽屉型的组件.当用户选择打开此抽屉之后,会得到一些能够使用的"程序集".这样当一个界面要摆放多个组件的时候,使用此组件就能够非常好的解决布局空间紧张 ...
- 新一代企业即时通信系统 -- 傲瑞通(OrayTalk)
傲瑞通(OrayTalk)是我们为企业专门打造的新一代企业即时通讯平台,功能强大丰富.像组织结构.文字/语音/视频会话.文件传送.远程协助.消息记录等功能都有,而且留有接口可与企业遗留系统进行集成. ...
- 《JSP+Servlet+Tomcat应用开发从零開始学》
当当网页面: http://product.dangdang.com/23619990.html 内容简单介绍 本书全面介绍了 JSP开发中涉及的相关技术要点和实战技巧. 全书结构清晰,难 ...
- 线程池系列一:线程池作用及Executors方法讲解
线程池的作用: 线程池作用就是限制系统中执行线程的数量. 根据系统的环境情况,可以自动或手动设置线程数量,达到运行的最佳效果:少了浪费了系统资源,多了造成系统拥挤效率不高.用线程池控制线程数量 ...
- linux 不常用命令及命令组合
lsof:list open files, sudo lsof | grep deleted:则列出虽然被删除,但还处于打开状态的文件.注意,这些文件占用的空间,只有在这些文件关闭时,才会被释放. m ...