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翻译的更多相关文章

  1. Python调用Google翻译

    出自:http://blog.csdn.net/zhaoyl03/article/details/8830806 最近想动手做一个文档自动下载器,需要模拟浏览器的行为.虽然感觉思路上没有困难,但在技术 ...

  2. Java 调用 google 翻译

    1.Java代码 public class Translator { public String translate(String langFrom, String langTo, String wo ...

  3. node.js调用google翻译api

    源码下载:https://pan.baidu.com/s/1nxoodst 使用:(只支持get) http://39.106.33.56:3001/translate?text=Failure is ...

  4. 添加了有道生词本的 chrome google翻译扩展和有道翻译扩展

    在chrome发布项目,需要先花美金认证,还得要美国ID,无奈. 直接上源码,需手动导入. 原始项目源码并未开源,个人是从chrome本地文件里拿出来的,拓展来的,侵删(本来想着自已写一个,业余时间, ...

  5. Google翻译请求(难点是tk参数)

    业务需求需要将一些文字翻译一下··· 但是直接调用接口收费啊啊啊啊(貌似是前几百万字免费,然后就开始收费了)···· 就想研究一下Google翻译接口... 想模拟Google向服务器发送一个Http ...

  6. Python 调用百度翻译API

    由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...

  7. 破解google翻译API全过程

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/6554340.html 前言 google的翻译不得不承认它 ...

  8. 获取google翻译的音频文件_合并音频文件的方法

    1. 把引文输入google 翻译,然后点击"朗读"

  9. 桌面每日一句--桌面翻译工具(有道翻译,微软翻译,Google翻译)

    现在的翻译软件功能越来越多,也越来越臃肿,还不时弹广告,真的很烦恼. 鉴于这种情况,自己做了个翻译软件,能满足日常需求就好了.需要用的时候可以直接在桌面输入单词翻译,或者直接使用快捷键呼出翻译窗口.最 ...

随机推荐

  1. java9新特性-6-多版本兼容jar包

    1.官方Feature 238: Multi-Release JAR Files 2.使用说明 当一个新版本的Java出现的时候,你的库用户要花费数年时间才会切换到这个新的版本.这就意味着库得去向后兼 ...

  2. 针对发起alter tablespace test begin backup 断电情况的处理

    SQL> select tablespace_name from dba_tablespaces; TABLESPACE_NAME ------------------------------ ...

  3. Android控件postDelayed用法,View自带的定时器

    有一个需求是这样的,点击加关注按钮后,执行关注操作,成功后按钮文字变为“已关注”,保持3秒,三秒后按钮文字便问“取消关注”,点击后执行取消关注的操作 源码: public boolean postDe ...

  4. PostgreSQL Replication之第七章 理解Linux高可用(3)

    7.3 高可用软件的历史 有大量的专有的和开源的高可用性软件.专有的例子有:Solaris Cluster (有时称为Sun 集群 or SunCluster), SteelEye LifeKeepe ...

  5. js确认框confirm()用法实例详解

    先为大家介绍javascript确认框的三种使用方法,具体内容如下 第一种方法:挺好用的,确认以后才能打开下载地址页面.原理也比较清晰.主要用于删除单条信息确认. ? 1 2 3 4 5 6 7 8 ...

  6. Linux cp 复制命令

    Linux 的cp命令 功能: 复制文件或目录说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中.若 ...

  7. JavaScript,ES5和ES6的区别

    什么是JavaScript JavaScript一种动态类型.弱类型.基于原型的客户端脚本语言,用来给HTML网页增加动态功能.(好吧,概念什么最讨厌了) 动态: 在运行时确定数据类型.变量使用之前不 ...

  8. 部分vivo和oppo手机,使用上传图片功能,可能会出现退出webview的现象(回退到app的入口页面)

    在公司的app里面嵌入了一个h5页面,h5页面有个使用图片上传功能,上传图片出现闪退的现象 问题描述:vivo手机,在app内的wap页面使用上传图片的功能,在选择好图片点击确认按钮后,出现退出整个w ...

  9. 转移顺序的艺术 luogu4394 + lougu2966 + luogu3537

    lougu4394: N个政党要组成一个联合内阁,每个党都有自己的席位数. 现在希望你找出一种方案,你选中的党的席位数要大于总数的一半,并且联合内阁的席位数越多越好. 对于一个联合内阁,如果某个政党退 ...

  10. codevs——T1337 银行里的迷宫

     时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 楚楚每一次都在你的帮助下过了一关又一关(比如他开宴会). ...