進入官方:http://api.fanyi.baidu.com/api/trans/product/index
點擊立即使用,申請得到appid和密鑰
ps:這要用作開發時的常量,若當月翻譯字符數≤2百萬,當月免費;若超過2百萬字符,按照49元/百萬字符支付當月全部翻譯字符數費用。個人測試還是夠用的,如果商用的話請按百度官方的服務協議。
那麼好的,下面我簡單的說一下,先說簽名sign的生成(就是官方要求的參數拼到一起的MD5值)
appid=2015063000000001+q=apple+salt=1435660288+密鑰=12345678
上面這一條就是官方要求的參數,分別說明一下:appid跟密鑰是申請給的,q是你要翻譯的內容,salt是隨機數拼到一起可以得到:2015063000000001apple143566028812345678 這些拼到一起,然後把生成的簽名結果之和,在https://md5jiami.51240.com/中生成的常規md5加密-32位小寫的。就是sign簽名了。
完整的請求:(直接在瀏覽器地址欄測試)
http://api.fanyi.baidu.com/api/trans/vip/translate?q=要翻譯的內容&from=auto&to=zh&appid=申請給的&salt=1435660288&sign=簽名
ps: from指的是翻譯前語種,to指的是翻譯後的語種,auto是自動識別,zh是中文。
瀏覽器返回一個json串:
{"from":"en","to":"zh","trans_result":[{"src":"apple","dst":"\u82f9\u679c"}]}
\u82f9\u679c爲unicode編碼轉換中文爲蘋果
實驗自己的appid跟密鑰好用,並且實踐成功,下面我們開始寫代碼。
先從官網的'文檔與支持'的一欄,點擊'各種語言DEMO',下載Java版。
C:\java\src\com\baidu\translate\demo裏面
這三個文件放進工具類的包,會有sgin簽名MD5加密,字符串拼接以及隨機數的生成的功能,完全不需要自己寫,咱們直接寫controller層:命名爲TranslateController
ps:我是要加一個按鈕,把頁面上從後臺取的內容,翻譯成中文,不想操作數據庫,就直接在頁面取了
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import cn.iqbar.common.utils.TransApi;
@Controller
@RequestMapping(value = "/我是路境")
public class TanslateController {
// 在平臺申請的APP_ID 詳見 http://api.fanyi.baidu.com/api/trans/product/desktop?req=developer
private static final String APP_ID = "自己去申請自己去填寫";
private static final String SECURITY_KEY = "自己去申請自己去填寫";
@RequestMapping(value = "/我是路徑")
@ResponseBody
@Transactional
public Map <String,String> translateApi(String s1, String s2){
//s1和s2 是我從前臺收的值,
System.out.println(s1);
System.out.println(s2);
TransApi api = new TransApi(APP_ID, SECURITY_KEY);
System.out.println(api.toString()+"接口引用");
Map <String,String> map=new HashMap<String,String>();
String transResult1 = api.getTransResult(s1, "auto", "zh");
String transResult2 = api.getTransResult(s2, "auto", "zh");
System.out.println(transResult1);
System.out.println(transResult2);
map.put("homeworkCovered", transResult1);
map.put("homeworkSet", transResult2);
model.addAttribute("trsante", map);
return map;
}
}
jsp用script,ajax實現的命名爲baidufanyi.jsp
<button id="btn">翻譯</button>
<div style="margin-top: 30px" id="transCont"></div>
自己去引script
//初始化按鈕ajax顯示翻譯
$("#btn").click(function() {
//這是我取的值
var homeworkCovered = $("#homeworkCovered").text();
var homeworkSet = $("#homeworkSet").text();
$.ajax({
type: 'post',
url: '/我是路境/我是路徑',
data: {
s1: homeworkCovered,
s2: homeworkSet
},
success: function(data) {
var homeC = JSON.parse(data.homeworkCovered);
var homeS = JSON.parse(data.homeworkSet);
console.log(homeC.trans_result[0].dst);
console.log(homeS);
var homeCTag = "<p>Pages/Slides/Topics Covered:<span> " + homeC.trans_result[0].dst + "</span></p>";
var homeSTag = "<p>Homework Set:<span> " + homeS.trans_result[0].dst + "</span></p>";
//console.log(homeCTag);
//console.log(homeSTag);
$(homeCTag).appendTo("#transCont");
$(homeSTag).appendTo("#transCont");
$("#btn").attr("disabled","true");
},
error: function() {
alert("老師沒有留言哦");
}
});
});
好的 這樣就可以了 慢慢在控制檯調試,可以做個參考例子,也方便我日後查詢熟練掌握