1 原理:查看谷歌翻译网站,输入需要翻译的文字,选择语言得到翻译后的文字,发送异步请求参数返回结果。java使用httpclient发送请求,实现使用代码翻译文章的功能。
2 下载代码后,测试入口:(代码为网上资源,经过改善已经可以使用测试)
package translate;
public class Translator {
public static void main(String[] args) {
// 1 不使用代理容易被谷歌封ip
GoogleApi googleApi = new GoogleApi();
// 2 使用代理,即 vpn
//GoogleApi googleApi = new GoogleApi("12.24.27.22", 328);
String result = googleApi.translate("Many applications within the enterprise domain ", "", "zh");
System.out.println(result);
}
}
3 关键方法,获取翻译token值,代码为网上找的解决方法,下载代码自行研究。
public String translate(String word, String from, String to){
if(StringUtils.isBlank(word)){
return null;
}
String _tkk = getTKK();
if(StringUtils.isBlank(_tkk)){
return null;
}
String _tk = getTK(word, _tkk);
try{
word = URLEncoder.encode(word, "UTF-8");
}catch(Exception e){
e.printStackTrace();
}
StringBuffer buffer = new StringBuffer("https://translate.google.cn/translate_a/single?client=t");
buffer.append("&sl=" + from);
buffer.append("&tl=" + to);
buffer.append("&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&ie=UTF-8&oe=UTF-8&source=btn&kc=0");
buffer.append("&tk=" + _tk);
buffer.append("&q=" + word);
browser.setUrl(buffer.toString());
try{
String result = browser.executeGet();
JSONArray array = (JSONArray) JSONArray.parse(result);
JSONArray r_array = array.getJSONArray(0);
StringBuffer r_buffer = new StringBuffer();
for(int i = 0; i < r_array.size(); i++){
String _r = r_array.getJSONArray(i).getString(0);
if(StringUtils.isNotBlank(_r)){
r_buffer.append(_r);
}
}
return r_buffer.toString();
}catch(Exception e){
e.printStackTrace();
return null;
}
}
4 下载地址: