使用百度翻譯api支持中轉英,中簡轉中繁等等


一、在寫代碼之前先在在百度翻譯平台中,申請APP_ID 

  申請地址連接:http://api.fanyi.baidu.com/api/trans/product/index

二,可以看官方文檔,實際上官方有提供demo申請id后可以直接作為工具類來用了

三,以下是我寫的工具類:

package com.hailian.util.translate;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Random;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class TransApi {     
    public static String Trans(String q,String targetlanguage) {//targetlanguage目標語言  en英語  cht中文繁體
         String appid="***********";//申請的百度翻譯id
         String salt=String.valueOf(new Random().nextInt(100));
         String sign=appid+q+salt+"*********";//id對應的密碼
         MessageDigest md5;
         try {
             md5 = MessageDigest.getInstance("MD5");
              md5.update((sign).getBytes("UTF-8"));
              byte b[] = md5.digest();
               
              int i;
              StringBuffer buf = new StringBuffer("");
               
              for(int offset=0; offset<b.length; offset++){
                  i = b[offset];
                  if(i<0){
                      i+=256;
                  }
                  if(i<16){
                      buf.append("0");
                  }
                  buf.append(Integer.toHexString(i));
              }
             
              sign = buf.toString();
         } catch (NoSuchAlgorithmException | UnsupportedEncodingException e) {
             // TODO Auto-generated catch block
             e.printStackTrace();

         } 
          String result=getResult(q,sign,appid,salt,targetlanguage);
         String content="{"+result;
         String json=getDate(content);
         return json;
    }
    //百度平台(翻譯接口)相關數據
    public static String getResult(String q,String sign,String appid,String salt,String targetlanguage){
        String result="";
        //拼接相關參數
        String params="http://api.fanyi.baidu.com/api/trans/vip/translate?q="+q+"&from=auto&to="+targetlanguage+"&appid="+appid+"&salt="+salt+"&sign="+sign;        
         try {
            URL url = new URL(params);
            URLConnection connection = url.openConnection();  
            //設置連接時間(10*1000)
            connection.setConnectTimeout(10*1000);
            //設置輸出
            connection.setDoOutput(true);
            //設置輸出
            connection.setDoInput(true);
            //設置緩存
            connection.setUseCaches(false);            
            //outputstream-----輸出流
            InputStream inputstream=connection.getInputStream();
            //緩存字符流
            BufferedReader buffer = new BufferedReader(new InputStreamReader(inputstream)); 
            //返回相關結果
            StringBuilder builder=new StringBuilder();
            while(buffer.read()!=-1){
                builder.append(buffer.readLine());                
            }
            //返回相關結果
            result=builder.toString();
            //緩存字符流關閉操作
            buffer.close();
 
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        return result;
    }
    //解析百度服務器平台返回的相關數據信息
    public static String getDate(String result){
        String date="";
        
        JSONObject object=JSONObject.fromObject(result);
        JSONArray array=object.getJSONArray("trans_result");
        int length=array.size();
        for(int i=0;i<length;i++){
            JSONObject params=JSONObject.fromObject(array.get(i));
            String str=params.getString("dst");
            try {
                str=URLDecoder.decode(str,"utf-8");
                date=str;
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }            
        }    
        return date;
        
    }
 
    public static void main(String[] args) {
        String trans = Trans("信息安全及保密承諾書","cht");
        String transTOEn = Trans("信息安全及保密承諾書","en");
        System.out.println(trans);
        System.out.println(transTOEn);
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM