利用百度翻译API实现多语言的翻译
2024-10-24 06:42:02 211人阅读
支持语言:
中英、英中、中日、日中、中韩、韩中、中法、法中、中西、西中、中泰、泰中、中阿、阿中、中俄、俄中、英日、日英、英泰、泰英、英阿、阿英、英西、西英、英葡、葡英
频率限制:
普通开发者提供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 = http://www.mamicode.com/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;
}