调用谷歌翻译的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);
}
}