通过httpClient实现google翻译
通过httpClient实现google翻译
google翻译 各国简写表
https://developers.google.com/translate/v2/using_rest
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] [全屏预览]
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()));
}
}
|
通过httpClient实现google翻译相关推荐
- 在C#中使用Google翻译API
目录 介绍 要求 示例翻译函数 兴趣点 介绍 我们想轻松地将文本字符串翻译成另一种语言.从Google 翻译API返回的结果非常晦涩.它们采用JSON锯齿状数组的形式.当您必须翻译多个句子时,甚至更加 ...
- Python一键转Java?“Google翻译”你别闹
作者 | 若名 出品 | AI科技大本营(ID:rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖热 ...
- 输出不详宗教预言,Google翻译为何“水逆”了?
最近,一些网友使用的 Google 翻译"水逆"了. 在 Reddit 上,有网友截图显示,在 Google 翻译中当某些语种的词汇翻译成英语时,输出的却是毫无由头的宗教语言.比如 ...
- Google 翻译的妙用
Google 翻译的妙用 对于En不好的人来说,Google翻译是一个不可或缺的工具,尽管有时候其翻译过来的语言让人哭笑不得,曾有蛋疼的网友将辛弃疾的青玉案·元夕这首词使用"Google翻译 ...
- Python 大规模异步新闻爬虫、google翻译、百度翻译、有道翻译、百度指数
参考:https://www.yuanrenxue.com/crawler/news-crawler-urlpool.html url_pool.py # -*- coding: utf-8 -*- ...
- java html转图片_Python一键转Java?“Google翻译”你别闹
作者 | 若名 出品 | AI科技大本营(ID:rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖热 ...
- 翻译pdf中的英文 python_浅谈python实现Google翻译PDF,解决换行的问题
我们复制PDF到Google翻译时,总是会出现换行的情况,如果自己手动去除,那就太麻烦了. 那么用Python就可以解决,复制到粘贴板以后,Python程序自动可以把\n换成空格,然后我们就可以复制到 ...
- Python 一键转 Java?“Google 翻译”你别闹
作者 | 若名 出品 | AI科技大本营(ID: rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖 ...
- Cairngorm 3 libraries 简介 是通过google翻译加上自己的理解得来的
注:是通过google翻译加上自己的理解得来的,原文地址: http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm+Libraries ...
最新文章
- stm32对c语言要求高吗?c语言什么水平可以学stm32?
- containerd和docker技术的比较
- linux cer证书转为jks,常见SSL证书格式介绍以及SSL证书格式转化方法
- java 基本类型 引用类型_Java中的基本类型和引用类型变量的区别
- leecode-11盛最多水的容器C版-双指针的使用
- MongoDB CookBook读书笔记之导入导出
- Nginx笔记总结十一:Nginx重写规则指南
- 下周开始读《Principles of Program Analysis》
- 【解题报告】【HODJ1231】【最大子序列和】最大连续子序列
- office表格怎么冻结前两行_office 2010下excel表格中冻结功能操作任意行的技巧
- OpenCV学习之Canny算法自实现
- Unity UGUI 代码改变遮挡层级
- pdf合到一起java_如何将两个PDF文件合并成一个Java?
- facebook-share(分享)
- IDL批量处理---MOD04_L2
- 2021年5月系统集成项目管理工程师基础知识真题讲解
- zedboard_第一篇blog
- 埃斯顿机器人待遇_收到碧桂园机器人公司的offer,建议去工作吗?
- 磁力泵轴承毁坏、泵轴裂开、扬程不够如何解决
- 图片ALT属性,是否有利于SEO?