通过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翻译相关推荐

  1. 在C#中使用Google翻译API

    目录 介绍 要求 示例翻译函数 兴趣点 介绍 我们想轻松地将文本字符串翻译成另一种语言.从Google 翻译API返回的结果非常晦涩.它们采用JSON锯齿状数组的形式.当您必须翻译多个句子时,甚至更加 ...

  2. Python一键转Java?“Google翻译”你别闹

    作者 | 若名 出品 | AI科技大本营(ID:rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖热 ...

  3. 输出不详宗教预言,Google翻译为何“水逆”了?

    最近,一些网友使用的 Google 翻译"水逆"了. 在 Reddit 上,有网友截图显示,在 Google 翻译中当某些语种的词汇翻译成英语时,输出的却是毫无由头的宗教语言.比如 ...

  4. Google 翻译的妙用

    Google 翻译的妙用 对于En不好的人来说,Google翻译是一个不可或缺的工具,尽管有时候其翻译过来的语言让人哭笑不得,曾有蛋疼的网友将辛弃疾的青玉案·元夕这首词使用"Google翻译 ...

  5. Python 大规模异步新闻爬虫、google翻译、百度翻译、有道翻译、百度指数

    参考:https://www.yuanrenxue.com/crawler/news-crawler-urlpool.html url_pool.py # -*- coding: utf-8 -*- ...

  6. java html转图片_Python一键转Java?“Google翻译”你别闹

    作者 | 若名 出品 | AI科技大本营(ID:rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖热 ...

  7. 翻译pdf中的英文 python_浅谈python实现Google翻译PDF,解决换行的问题

    我们复制PDF到Google翻译时,总是会出现换行的情况,如果自己手动去除,那就太麻烦了. 那么用Python就可以解决,复制到粘贴板以后,Python程序自动可以把\n换成空格,然后我们就可以复制到 ...

  8. Python 一键转 Java?“Google 翻译”你别闹

    作者 | 若名 出品 | AI科技大本营(ID: rgznai100) 近日,Reddit 上有网友放出了一张疑似 Google 翻译添加了能让编程语言间互相转换的图片,立即引发数千名程序员网友的跟帖 ...

  9. Cairngorm 3 libraries 简介 是通过google翻译加上自己的理解得来的

    注:是通过google翻译加上自己的理解得来的,原文地址: http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm+Libraries ...

最新文章

  1. stm32对c语言要求高吗?c语言什么水平可以学stm32?
  2. containerd和docker技术的比较
  3. linux cer证书转为jks,常见SSL证书格式介绍以及SSL证书格式转化方法
  4. java 基本类型 引用类型_Java中的基本类型和引用类型变量的区别
  5. leecode-11盛最多水的容器C版-双指针的使用
  6. MongoDB CookBook读书笔记之导入导出
  7. Nginx笔记总结十一:Nginx重写规则指南
  8. 下周开始读《Principles of Program Analysis》
  9. 【解题报告】【HODJ1231】【最大子序列和】最大连续子序列
  10. office表格怎么冻结前两行_office 2010下excel表格中冻结功能操作任意行的技巧
  11. OpenCV学习之Canny算法自实现
  12. Unity UGUI 代码改变遮挡层级
  13. pdf合到一起java_如何将两个PDF文件合并成一个Java?
  14. facebook-share(分享)
  15. IDL批量处理---MOD04_L2
  16. 2021年5月系统集成项目管理工程师基础知识真题讲解
  17. zedboard_第一篇blog
  18. 埃斯顿机器人待遇_收到碧桂园机器人公司的offer,建议去工作吗?
  19. 磁力泵轴承毁坏、泵轴裂开、扬程不够如何解决
  20. 图片ALT属性,是否有利于SEO?

热门文章

  1. 神经网络硕士就业前景,神经网络就业怎么样
  2. 经典消费者生产者问题
  3. 从现在开始爱惜自己的身体,珍惜身边的事物,孝顺自己的长辈。
  4. WPF浏览本地html页面,并实现js交互
  5. 汇编语言MOV指令详解以及错误写法修正
  6. mac地址真的是全球是唯一的吗
  7. php 5.3 register_globals,PHP中register_globals参数设置
  8. 世界各国电压和转换插头对照
  9. 计算机网络基础与应用复习提纲,计算机网络基础与应用复习大纲.doc
  10. DOM树和CSSOM树的构建和渲染