C#&.Net干货分享- 构造BaiduLanguageHelper对接百度的语言翻译
全部是封装的API源码。。。
namespace Frame.Api
{
/// <summary>
/// 百度多语言支持器
/// </summary>
public class BaiduLanguageHelper
{
/*
语言简写 名称
auto 自动检测
zh 中文
en 英语
yue 粤语
wyw 文言文
jp 日语
kor 韩语
fra 法语
spa 西班牙语
th 泰语
ara 阿拉伯语
ru 俄语
pt 葡萄牙语
de 德语
it 意大利语
el 希腊语
nl 荷兰语
pl 波兰语
bul 保加利亚语
est 爱沙尼亚语
dan 丹麦语
fin 芬兰语
cs 捷克语
rom 罗马尼亚语
slo 斯洛文尼亚语
swe 瑞典语
hu 匈牙利语
cht 繁体中文
vie 越南语
*/
//可以直接到百度翻译API的官网申请
private static string LAN_APPID_BAI_DU = WebConfigHelper.GetWebConfigString("BaiduLanAppId");
//可以直接到百度翻译API的官网申请
private static string LAN_PWD_BAI_DU = WebConfigHelper.GetWebConfigString("BaiduLanPwd");
/// <summary>
/// 调用百度翻译API进行翻译
/// 详情可参考http://api.fanyi.baidu.com/api/trans/product/apidoc
/// </summary>
/// <param name="tContent">待翻译字符</param>
/// <param name="fromLan">源语言</param>
/// <param name="toLan">目标语言</param>
/// <returns>翻译结果</returns>
public static string Translation(string tContent, string fromLan, string toLan)
{
string jsonResult = String.Empty;
string languageFrom = fromLan.ToLower();
string languageTo = toLan.ToLower();
string randomNum = System.DateTime.Now.Millisecond.ToString();
string md5Sign = GetMD5WithString(LAN_APPID_BAI_DU + tContent + randomNum + LAN_PWD_BAI_DU);
String url = String.Format("http://api.fanyi.baidu.com/api/trans/vip/translate?q={0}&from={1}&to={2}&appid={3}&salt={4}&sign={5}", HttpUtility.UrlEncode(tContent, Encoding.UTF8), languageFrom, languageTo, LAN_APPID_BAI_DU, randomNum, md5Sign);
WebClient wc = new WebClient();
try
{
jsonResult = wc.DownloadString(url);
}
catch
{
jsonResult = string.Empty;
}
JavaScriptSerializer jss = new JavaScriptSerializer();
TranslationResult ret = jss.Deserialize<TranslationResult>(jsonResult);
if (ret != null && string.IsNullOrEmpty(ret.Error_code))
{
return ret.Trans_result[0].Dst.Trim();
}
//翻译失败,返回原来的字符
return tContent;
}
/// <summary>
/// md5加密
/// </summary>
/// <param name="input">待加密字符串</param>
/// <returns>加密结果</returns>
private static string GetMD5WithString(string input)
{
//input必须转换为UTF-8编码
if (input == null)
{
return null;
}
MD5 md5Hash = MD5.Create();
// 将输入字符串转换为字节数组并计算哈希数据
byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
// 创建一个 Stringbuilder 来收集字节并创建字符串
StringBuilder sBuilder = new StringBuilder();
// 循环遍历哈希数据的每一个字节并格式化为十六进制字符串
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
// 返回十六进制字符串
return sBuilder.ToString();
}
}
/// <summary>
/// 翻译API返回对象
/// </summary>
public class TranslationResult
{
/// <summary>
///
/// </summary>
public string Error_code { get; set; }
/// <summary>
///
/// </summary>
public string Error_msg { get; set; }
/// <summary>
///
/// </summary>
public string From { get; set; }
/// <summary>
///
/// </summary>
public string To { get; set; }
/// <summary>
///
/// </summary>
public string Query { get; set; }
/// <summary>
///
/// </summary>
public Translation[] Trans_result { get; set; }
}
/// <summary>
///
/// </summary>
public class Translation
{
/// <summary>
///
/// </summary>
public string Src { get; set; }
/// <summary>
///
/// </summary>
public string Dst { get; set; }
}
}
C#&.Net干货分享- 构造BaiduLanguageHelper对接百度的语言翻译的更多相关文章
- C#&.Net干货分享- 构造SMSWebChineseApi对接第三方短信平台
你们想要的短信对接,要舍得点钱哦.... /// <summary> /// http://sms.webchinese.cn/api.shtml /// </summa ...
- C#&.Net干货分享-构造QRCoderHelper生成二维码图片
不想说废话,直接源码拿去用... /// <summary> /// 二维码管理 /// </summary> public class QRCoderHel ...
- 干货分享:SQLSERVER使用裸设备
干货分享:SQLSERVER使用裸设备 这篇文章也适合ORACLE DBA和MYSQL DBA 阅读 裸设备适用于Linux和Windows 在ORACLE和MYSQL里也是支持裸设备的!! 介绍 大 ...
- 【干货分享】Node.js 中文资料导航
这篇文章与大家分享一批高质量的的 Node.js 中文资料.Node.js 是一个基于 Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的, 易于扩展的网络应用 Node ...
- 干货分享:互联网运营 学习SEO从零开始 SEO深度解析学习笔记
最近在自学SEO,互联网运营,把做的笔记干货分享给大家啊! 希望能帮到大家,如有好的建议可以关注我[磨人的小妖精]或留言,大家一起探讨. 之前还写过一篇文章互联网运营+SEO:推荐必看的5本书籍,学习 ...
- ref:【干货分享】PHP漏洞挖掘——进阶篇
ref:http://blog.nsfocus.net/php-vulnerability-mining/ [干货分享]PHP漏洞挖掘——进阶篇 王陶然 从常见的PHP风险点告诉你如何进行PH ...
- 最强最全干货分享:Android开发书籍、教程、工具等
最全干货分享,本文收集整理了Android开发所需的书籍.教程.工具.资讯和周刊各种资源,它们能让你在Android开发之旅的各个阶段都受益. 入门<Learning Android(中文版)& ...
- pdf.js的使用(1) 站在巨人的肩膀上纯干货分享,没有华丽的词藻
以下是我在实际项目开发中的过程分享 前端是:vue+jsp 1.首先下载pdf.js(怎么下可以去百度),实在不会就私我,我发给你 1.1展示一哈我下载下来的pdf.js的目录结构 1.2接下来可 ...
- iOS - GitHub干货分享(APP引导页的高度集成 - DHGuidePageHUD - ②)
距上一篇博客"APP引导页的高度集成 - DHGuidePageHUD - ①"的发布有一段时间了, 后来又在SDK中补充了一些新的内容进去但是一直没来得及跟大家分享, 今天来跟大 ...
随机推荐
- java 反射借助 asm 获取参数名称最优雅简单的方式
背景说明 最近写反射相关的代码,想获取对应的参数名称,却发现没有特别好的方式. jdk7 及其以前,是无法通过反射获取参数名称的. jdk8 可以获取,但是要求指定 -parameter 启动参数,限 ...
- 度及拓扑图的使用-UESTC1958学霸周选课
学霸周选课 Time Limit: 1000 MS Memory Limit: 128 MB Submit Status 众所周知周大爷不仅编程了得,专业课成绩更是名列前茅,恰巧又到了选课的季 ...
- HDU3666-THE MATRIX PROBLEM(差分约束-不等式解得存在性判断 对数转化)
You have been given a matrix C N*M, each element E of C N*M is positive and no more than 1000, The p ...
- ansible批量管理常见的配置方法
第7章 ansible的管理 7.1 ansible概念的介绍 ansible-playbook –syntax 检查语法 ansible-playbook -C ...
- Tesseract-OCR 字体库下载地址
https://github.com/tesseract-ocr/tesseract/wiki/Data-Files
- 【Web技术】399- 浅谈前端代码加密
作者简介:于航,PayPal Senior Software Engineer,在 PayPal 上海负责 Global GRT 平台相关的技术研发工作.曾任职于阿里巴巴.Tapatalk 等企业.f ...
- 手动启动Oracle服务的.bat文件
Oracle数据库的基本服务会占用很大的内存,有的程序员会在不用的时候Oracle服务关闭来减少对电脑内存资源的占用. 我在这准备了一个可以开启/关闭Oracle服务的bat文件,希望被采纳!!! 新 ...
- cygwin报错 /bin/bash: Operation not permitted
如题,使用Cygwin过程中本来好好的,突然就不能登录了,每个用户登录都报错 /bin/bash: Operation not permitted.开始也以为是没有权限之类的,重装弄了很久也不行.后面 ...
- 一起学Spring之Web基础篇
概述 在日常的开发中Web项目集成Spring框架,已经越来越重要,而Spring框架已经成为web开发的主流框架之一.本文主要讲解Java开发Web项目集成Spring框架的简单使用,以及使用Spr ...
- FCC---CSS Flexbox: Use the flex-direction Property to Make a Column
The last two challenges used the flex-direction property set to row. This property can also create a ...