全部是封装的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; }
    }
}

最新文章

  1. 插头dp
  2. python实验二:字符串排序
  3. 关于plsql连接oracle数据库session失效时间设置
  4. springmvc web-info目录下无法引入的js文件无效
  5. AngularJS特性
  6. 4418SPI2对应管脚位置
  7. (一)跟我一起玩Linux网络服务:DNS服务——BIND(/etc/named.conf、/var/named)设置实现和解释
  8. ORACLE WIN7安装过程截图
  9. UITouch附加
  10. Android学习笔记之View(二)
  11. 动画操作 (Applying Animations) ngAnimate12
  12. [深入学习Redis]RedisAPI的原子性分析
  13. .NET Core初体验 在window上构建第一个app
  14. mongodb系列之--分片的原理与配置
  15. python小白——进阶之路——day2天-———变量的缓存机制+自动类型转换
  16. Vue-校验props传来的值
  17. [UWP]如何使用代码创建DataTemplate(或者ControlTemplate)
  18. Java异常处理之try-with-resources
  19. 实战:mysql检查物理磁盘中的二进制日志文件是否有丢失
  20. Hadoop专业解决方案-第13章 Hadoop的发展趋势

热门文章

  1. unrecognized selector sent to class 0x10a4ce490 我躺过的坑
  2. HTML_body中常用的标签部分
  3. Python爬虫--喜马拉雅三国音频爬取
  4. 【Vuejs】397- Vue 3最值得期待的五项重大更新
  5. 什么是jsp(java server pages)
  6. 【Element UI】使用问题记录
  7. 人生苦短,我用Python(1)
  8. 如何在Tomcat服务器配置CGI运行Python
  9. AQS系列(三)- ReentrantReadWriteLock读写锁的加锁
  10. C++类成员默认初始值