利用百度翻译API实现多语言的翻译

支持语言:

中英、英中、中日、日中、中韩、韩中、中法、法中、中西、西中、中泰、泰中、中阿、阿中、中俄、俄中、英日、日英、英泰、泰英、英阿、阿英、英西、西英、英葡、葡英

频率限制:

普通开发者提供1000次/小时限制,支持扩容;

GET请求方式:

http://openapi.baidu.com/public/2.0/bmt/translate?client_id=YourApiKey&q=today&from=auto&to=auto

响应示例:

{"from":"en","to":"zh","trans_result":[{"src":"today","dst":"\u4eca\u5929"}]}

目前支持11种语言,如下所示:

中文  zh  英语  en

日语  jp  韩语  kor

西班牙语  spa  法语  fra

泰语  th  阿拉伯语  ara

俄罗斯语  ru  葡萄牙语  pt

粤语  yue  文言文  wyw

白话文  zh  自动检测  auto

步骤:

Step1. 申请ApiKey,http://developer.baidu.com/console#app/project

Step2. 组成Get请求

Step3. 获得响应

Step4. 对响应进行解析(关键)

Step5. 结果输出

关键代码(C#):

public string getTraslation(string src)

{

//发送请求

HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://openapi.baidu.com/public/2.0/bmt/translate?client_id="
+ client_id + "&q=" + src + "&from=" + from + "&to=" + to);

//获得响应

string res = string.Empty;

try

{

//获取响应流

HttpWebResponse response = (HttpWebResponse)myReq.GetResponse();

StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);

res = reader.ReadToEnd();

reader.Close();

response.Close();

//正则表达式

string pattern = @"""dst"":""(?.*?)""}";

MatchCollection matchs;

string result = string.Empty;

matchs = Regex.Matches(res, pattern, RegexOptions.IgnoreCase | RegexOptions.Singleline);

foreach (Match m in matchs)

{

string strTokenValue = m.Groups["tokenVal"].Value;

string[] stringSeparators = new string[] { "\\u"
};

string[] unicodeArray = strTokenValue.Split(stringSeparators, StringSplitOptions.RemoveEmptyEntries);

StringBuilder sb = new StringBuilder();

if (unicodeArray.Length <= 1)

{

result = strTokenValue;

}

else

{

foreach (string item in unicodeArray)

{

byte[] codes = new byte[2];

int code1, code2;

code1 = Convert.ToInt32(item.Substring(0, 2), 16);

code2 = Convert.ToInt32(item.Substring(2), 16);

codes[0] = (byte)code2;//必须是小端在前

codes[1] = (byte)code1;

sb.Append(Encoding.Unicode.GetString(codes));

}

result = sb.ToString();

}

}

return result;

}

catch (Exception)

{

return null;

}

}

关键代码(Java):

public String getResult(String input){

try {

String src = URLEncoder.encode(input,"utf-8");

httpGet = new HttpGet("http://openapi.baidu.com/public/2.0/bmt/translate?client_id="+client_id+"&q="+src+"&from="+from+"&to="+to);

httpResponse = httpClient.execute(httpGet);

httpEntity = httpResponse.getEntity();

String content = EntityUtils.toString(httpEntity, "utf-8");

Matcher matcher = Pattern.compile("\"dst\":\"(?.*?)\"}").matcher(content);

if (matcher.find()){

strTokenValue = matcher.group("tokenVal");

String[] sarray = strTokenValue.split("\\\\u");

if (sarray.length <= 1){

result = strTokenValue;

}

else {

mybyte = new byte[2*sarray.length-2];

for (int i = 0; i < sarray.length-1; i++){

mybyte[2*i] = (byte)Integer.parseInt(sarray[i+1].substring(0, 2), 16);

mybyte[2*i+1] = (byte)Integer.parseInt(sarray[i+1].substring(2, 4), 16);

}

result = new String(mybyte,"utf-16");

}

}

httpGet.abort();

return result;

} catch (Exception e) {

return null;

}

}

请加微信:xiaoran-668

时间: 2024-10-07 05:31:19

利用百度翻译API实现多语言的翻译的相关文章

利用百度语音API进行语音识别。

由于项目需要,这几天都在试图利用百度语音API进行语音识别.但是识别到的都是“啊,哦”什么的,我就哭了. 这里我只是分享一下这个过程,错误感觉出现在Post语音数据那一块,可能是转换问题吧. API请求地址::http://vop.baidu.com/server_api 语音上传模式:显示发送:将语音数据直接放在 HTTP-BODY 中 其他参数:cuid:用户id,token:密钥 ,lan:语言等要了解更多请查看官方文档:http://developer.baidu.com/wiki/in

利用百度地图API,获取经纬度坐标

利用百度地图API,获取经纬度坐标 代码很简单,但在网上没找到现成的获取地图经纬度的页面. 就是想,给当前页面传递一个经纬度,自动定位到此经纬度.然后可以重新选择,选择完返回经纬度. 效果如下: 源代码下载:http://files.cnblogs.com/zjfree/select_map.rar 利用百度地图API,获取经纬度坐标,布布扣,bubuko.com

利用百度词典API和Volley网络库开发的android词典应用

 关于百度词典API的说明,地址在这里:百度词典API介绍 关于android网络库Volley的介绍说明,地址在这里:Android网络通信库Volley 首先我们看下大体的界面布局! 再帖张最终的效果图 看到效果图,应该知道布局很简单了对吧: 布局xml文件如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.a

利用百度地图API和群蚁算法,对TSP问题进行模拟与求解

前言 最近由于换了工作,期间也有反思和总结上家公司的得失,总觉得有什么事情当初可以完成或者完成得更好,其中TSP问题就是其中之一.当初在开发一个仓配系统的时候,有一个线路排程的需求,当时自己简单在纸上画了思路,发现求精确解算法复杂度是N!,所以去百度,发现了NPC问题的概念,但是一直以来都没有对这个问题好好研究过,最终只是选择了贪心算法这一求近似解的方案,正好这是我的第一篇博客,就拿这个“遗憾”开刀吧. 1.  利用百度地图API模拟TSP的各个城市点 1.1. 调用百度地图API解析经纬度 这

利用百度地图API获取当前位置信息

利用百度地图API可以做很多事情,个人感觉最核心也是最基础的就是定位功能了.这里分享一个制作的JS可以实现登录网页后定位: 1 <script type="text/javascript"> 2 var map; 3 var gpsPoint; 4 var baiduPoint; 5 var gpsAddress; 6 var baiduAddress; 7 var x; 8 var y; 9 function getLocation() { 10 //根据IP获取城市 1

HTML5 利用百度地图API获取当前位置

由于项目需要定位到城市,研究了地理定位,做了一些手记,和大家分享一下~ 项目的开发需求是获取到当前用户的位置,然后为用户提供一些服务. 此时可以采用两种定位方式,一种是用GPS的定位,然后将定位到的经纬度传递到百度地图的API接口当中.另一种方法是利用百度API接口,使用IP地址定位,然后使用IP地址获取到的经纬度,传递到百度地图API接口中. 自己尝试使用了这两种方式进行定位.相对来说,IP地址定位,偏差比较大.GPS定位虽然还可以,但是也不足够精确.产生比较大偏差的原因有可能是以下几点造成的

利用百度地图API,在浏览器中找到自己的位置

首先你得有个百度地图的秘钥,http://lbsyun.baidu.com/apiconsole/key 剩下的就是编码了 这里面会用到一个javascript里的一个函数,getMyLocation(),利用它我们就可以获得自己的经度纬度,然后再经过百度地图,将其显示出来. 上代码,首先是html文件中的代码,使用html5标准 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type&q

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

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

PHP利用百度地图API进行IP定位和GPS定位

最近在做一个手机端的webapp地图应用,而核心内容当然是定位了,但是定位的话有几种方式,IP定位,GPS定位,基站定位(这个貌似webapp用不了), 那么剩下核心的gps定位和ip定位了,我们知道,html5有定位API,但是该API拿到的GPS数据是硬件坐标,无法直接显示在地图上. 后来上百度LBS云看到有地图IP定位API和GPS坐标转换API,地址:http://developer.baidu.com/map/ 百度地图API的调用需要申请KEY,这里就不具体介绍了,直接贴上本人写了两