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 下載地址: