java使用Google Translate

调用谷歌翻译的ajax地址:

 

http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=#FROM#%7C#TO#&q=#TEXT#

 

其中 #FROM# 是从什么语言翻译  #TO# 是翻译到什么语言去  #TEXT# 是要翻译的东西

 

#FROM# #TO#的值可以参考下面

 

阿尔巴尼亚语 : sq
阿拉伯语 : ar
爱尔兰语 : ga
爱沙尼亚语 : et
白俄罗斯语 : be
保加利亚语 : bg
冰岛语 : is
波兰语 : pl
波斯语 : fa
布尔文(南非荷兰语) : af
丹麦语 : da
德语 : de
俄语 : ru
法语 : fr
菲律宾语 : tl
芬兰语 : fi
韩语 : ko
荷兰语 : nl
加利西亚语 : gl
加泰罗尼亚语 : ca
捷克语 : cs
克罗地亚语 : hr
拉脱维亚语 : lv
立陶宛语 : lt
罗马尼亚语 : ro
马耳他语 : mt
马来语 : ms
马其顿语 : mk
挪威语 : no
葡萄牙语 : pt
日语 : ja
瑞典语 : sv
塞尔维亚语 : sr
斯洛伐克语 : sk
斯洛文尼亚语 : sl
斯瓦希里语 : sw
泰语 : th
土耳其语 : tr
威尔士语 : cy
乌克兰语 : uk
西班牙语 : es
希伯来语 : iw
希腊语 : el
匈牙利语 : hu
意大利语 : it
意第绪语 : yi
印地语 : hi
印尼语 : id
英语 : en
越南语 : vi
中文(繁体) : zh-TW
中文(简体) : zh-CN

 

 

最后给出简单调用:

package com.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class GoogleTranslate {

    //代表调用ajax的地址 , 其中#FROM# , #TO# , #TEXT# 分别代表从什么语言翻 , 翻成什么语言 , 要翻译什么东西
    public static final String BASEURL = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=#FROM#%7C#TO#&q=#TEXT#";
   
    //代表utf8编码
    public static final String UTF8 = "UTF-8";
   
    //查找结果的正则表达式
    public static final Pattern REG = Pattern.compile("\\{\"translatedText\":\"(.+?)\"\\}");
    /**
     *
     * @param from 从什么语言翻
     * @param to   翻成什么
     * @param text 要翻译的东西
     * @return 正确的url
     */
    public static String getRightURL(String from , String to , String text) {
        //翻译的东西要用utf-8转码
        String utf8EncodedString = "";
        try {
            utf8EncodedString = URLEncoder.encode(text, UTF8);
        }catch (Exception e) {
        }
        return BASEURL.replace("#FROM#", from).replace("#TO#", to).replace("#TEXT#", utf8EncodedString);
    }
    /**
     *
     * @param url 调用ajax的url
     * @return    调用完成后返回的代码
     */
    public static String getResponseHtml(String urlAjax) {
        URL url = null;
        BufferedReader br = null;
        StringBuilder sb = new StringBuilder();
        try {
            url = new URL(urlAjax);
            br = new BufferedReader(new InputStreamReader(url.openStream() , UTF8));
            String tmp ;
            while((tmp = br.readLine()) != null) {
                sb.append(tmp);
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if(br != null) {
                try {
                    br.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return sb.toString();
    }
    /**
     * 得到结果时应该调用的方法
     * @param from
     * @param to
     * @param text
     * @return
     */
    public static String translate(String from , String to , String text) {
        String rightURL = getRightURL(from, to, text);
        String responseHtml = getResponseHtml(rightURL);
        Matcher matcher = REG.matcher(responseHtml);
        String result = "";
        if(matcher.find()) {
            result = matcher.group(1);
        }
        return result;
    }
   
   
    public static void main(String[] args) {
        String translate = translate("zh-CN", "en", "今天天气不错");
        System.out.println(translate);
    }
   
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值