使用百度翻译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);
    }
}

原文地址:https://www.cnblogs.com/dsh2018/p/10049767.html

时间: 2024-10-10 10:19:12

使用百度翻译api支持中转英,中简转中繁等等的相关文章

基于百度翻译API开发属于自己的翻译工具

你是否每天使用着网页翻译工具?你是否遇到过这种情况,上网过程中遇到一个很长的单词但是又不能复制,要开两个浏览器,一个打开百度翻译,照着另一个网页输入单词?你安装了各种翻译软件后,又删除,只因忍受不了那每次弹出来的广告?其实我们想要的就是简单的翻译一个单词.今天就来使用百度翻译开放API,做一个属于自己的翻译工具,只有简单的翻译功能,至于外观自己根据自己的爱好,想做成什么样就做成什么样,终于可以任性一回了~~ 下面先来看一下词典效果:  一.百度翻译API简介 百度翻译可以通过HTTP访问,返回J

php使用百度翻译api示例分享

百度翻译API的PHP代码,测试可以实现,不过英译中可能需要转换编码. <?php function language($value,$from="auto",$to="auto") { $value_code=urlencode($value); #首先对要翻译的文字进行 urlencode 处理 $appid="你的API Key"; #您注册的API Key $languageurl = "http://openapi.ba

百度翻译APi接口实现

案例使用百度翻译API接口,实现文本翻译 为保证翻译质量,请将单次请求长度控制在 6000 bytes以内.(汉字约为2000个) 签名生成方法如下: 1.将请求参数中的 APPID(appid), 翻译query(q, 注意为UTF-8编码), 随机数(salt), 以及平台分配的密钥(可在管理控制台查看) 按照 appid+q+salt+密钥 的顺序拼接得到字符串1. 2.对字符串1做md5,得到32位小写的sign. 注意: 1.请先将需要翻译的文本转换为UTF-8编码 2.在发送HTTP

百度翻译API

1 #/usr/bin/env python3 2 #coding=utf8 3 4 """百度翻译api功能实现函数,本模块基于Python3.x实现,getTransResult(q)中参数q是需被翻译的内容,目前该函数的源语言默认英文,目标语言默认简体中文""" 5 6 7 import http.client 8 import hashlib 9 import urllib 10 import random 11 import demjs

WP8.1小梦词典开发2:百度翻译API使用

原文出自:http://www.bcmeng.com/api2/ 小梦昨天和大家分享了WP8.1金山词霸API使用方法,今天继续分享windows phone 8.1中百度翻译API的使用方法.和昨天一样首先我们需要申请百度翻译API的Key: 百度翻译API的Key的申请: 进入 http://developer.baidu.com/ 需要一个百度账号,注册登陆后. 点击右上方的  管理服务台 ,选择开发者服务管理,进入口,选择创建工程就可以.创建工程完成后,你就可以拿到你的Key.和金山词霸

【Python】Python的urllib、urllib2模块调用“百度翻译”API进行批量自动翻译

1.问题描述 在文本数据处理时,经常回出现文本中各种语言的混杂情况,包括:英文.日语.俄语.法语等,需要将不同语种的语言批量翻译成中文进行处理.可以通过Python直接调用百度提供的翻译API进行批量的翻译. 百度翻译API详细文档见:百度翻译API文档 2.问题解决 开发环境:Linux 将文本中的中文和非中文进行分离,对非中文的部分进行翻译. Python的代码如下:translate.py #!/usr/bin/python #-*- coding:utf-8 -*- import sys

php处理json码 实例:PHP实现百度翻译API调用处理

今天给一个小程序写后台,通过调用百度翻译API实现翻译功能. 调用百度API的url为'http://openapi.baidu.com/public/2.0/translate/dict/simple?client_id=你的KEY&q=要查的汉语&from=zh&to=en'; 申请步骤详见点击打开链接 以上是前期准备工作 ==============================================================================

C# 调用百度翻译Api

这是简单的界面.用的是wpf,winform也可以 具体的操作类 public partial class MainWindow : Window { string url = ""; public MainWindow() { InitializeComponent(); this.cbxTranslateChange.SelectedIndex = 0; } private TranClass tranClass = new TranClass(); private void bt

Python 调用百度翻译API

由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu api 整了一下,和大家分享. 1.百度翻译api 由于百度翻译api需要用到API key,所以,得注册百度开发者账号,然后创建开发者服务工程,得到的授权API key,具体操作可查看官方文档,请点 百度翻译api 2.代码实现  基本思路是:先将用户反馈抓下来,然后再处理html标签,再调用百度