百度翻译开放平台:点击打开链接

1. 定义类用于保存解析json得到的结果

  1. public class Translation
  2. {
  3. public string Src { get; set; }
  4. public string Dst { get; set; }
  5. }
  6.  
  7. public class TranslationResult
  8. {
  9. //错误码,翻译结果无法正常返回
  10. public string Error_code { get; set; }
  11. public string Error_msg { get; set; }
  12. public string From { get; set; }
  13. public string To { get; set; }
  14. public string Query { get; set; }
  15. //翻译正确,返回的结果
  16. //这里是数组的原因是百度翻译支持多个单词或多段文本的翻译,在发送的字段q中用换行符(\n)分隔
  17. public Translation[] Trans_result { get; set; }
  18. }

2. 定义枚举保存一些常用语言

  1. public enum Language
  2. {
  3. //百度翻译API官网提供了多种语言,这里只列了几种
  4. auto = 0,
  5. zh = 1,
  6. en = 2,
  7. cht = 3,
  8. }

3. 因为百度翻译要求对发送数据中的一部分做md加密,所以这里给出对字符串做md5加密的函数

  1. //对字符串做md5加密
  2. private static string GetMD5WithString(string input)
  3. {
  4. if (input == null)
  5. {
  6. return null;
  7. }
  8. MD5 md5Hash = MD5.Create();
  9. //将输入字符串转换为字节数组并计算哈希数据
  10. byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));
  11. //创建一个 Stringbuilder 来收集字节并创建字符串
  12. StringBuilder sBuilder = new StringBuilder();
  13. //循环遍历哈希数据的每一个字节并格式化为十六进制字符串
  14. for (int i = 0; i < data.Length; i++)
  15. {
  16. sBuilder.Append(data[i].ToString("x2"));
  17. }
  18. //返回十六进制字符串
  19. return sBuilder.ToString();
  20. }

4. 调用百度翻译API的函数。记得去申请appid

  1. /// <summary>
  2. /// 调用百度翻译API进行翻译
  3. /// 详情可参考http://api.fanyi.baidu.com/api/trans/product/apidoc
  4. /// </summary>
  5. /// <param name="q">待翻译字符</param>
  6. /// <param name="from">源语言</param>
  7. /// <param name="to">目标语言</param>
  8. /// <returns></returns>
  9. private static TranslationResult GetTranslationFromBaiduFanyi(string q, Language from, Language to)
  10. {
  11. //可以直接到百度翻译API的官网申请
  12. //一定要去申请,不然程序的翻译功能不能使用
  13. string appId = "0123456789";
  14. string password = "0123456789";
  15.  
  16. string jsonResult = String.Empty;
  17. //源语言
  18. string languageFrom = from.ToString().ToLower();
  19. //目标语言
  20. string languageTo = to.ToString().ToLower();
  21. //随机数
  22. string randomNum = System.DateTime.Now.Millisecond.ToString();
  23. //md5加密
  24. string md5Sign = GetMD5WithString(appId + q + randomNum + password);
  25. //url
  26. 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}",
  27. HttpUtility.UrlEncode(q, Encoding.UTF8),
  28. languageFrom,
  29. languageTo,
  30. appId,
  31. randomNum,
  32. md5Sign
  33. );
  34. WebClient wc = new WebClient();
  35. try
  36. {
  37. jsonResult = wc.DownloadString(url);
  38. }
  39. catch
  40. {
  41. jsonResult = string.Empty;
  42. }
  43. //解析json
  44. JavaScriptSerializer jss = new JavaScriptSerializer();
  45. TranslationResult result = jss.Deserialize<TranslationResult>(jsonResult);
  46. return result;
  47. }

5. 对获取的翻译结果进行提取

  1. /// <summary>
  2. /// 将中文翻译为英文
  3. /// </summary>
  4. /// <param name="source"></param>
  5. /// <returns></returns>
  6. public static string translation(string source)
  7. {
  8. TranslationResult result = GetTranslationFromBaiduFanyi(source, Language.zh, Language.en);
  9. //判断是否出错
  10. if(result.Error_code == null)
  11. {
  12. return result.Trans_result[0].Dst;
  13. }
  14. else
  15. {
  16. //检查appid和密钥是否正确
  17. return "翻译出错,错误码:" + result.Error_code + ",错误信息:" + result.Error_msg;
  18. }
  19. }

百度翻译API(C#)的更多相关文章

  1. C# 调用百度翻译Api

    这是简单的界面.用的是wpf,winform也可以 具体的操作类 public partial class MainWindow : Window { string url = "" ...

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

    你是否每天使用着网页翻译工具?你是否遇到过这种情况,上网过程中遇到一个很长的单词但是又不能复制,要开两个浏览器,一个打开百度翻译,照着另一个网页输入单词?你安装了各种翻译软件后,又删除,只因忍受不了那 ...

  3. Python 调用百度翻译API

    由于实习公司这边做的是日文app,有时要看看用户反馈,对于我这种五十音图都没记住的人,表示百度翻译确实还可以.但不想每次都复制粘贴啊,google被墙也是挺蛋疼的事,所以用python结合baidu ...

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

    原文出自:http://www.bcmeng.com/api2/ 小梦昨天和大家分享了WP8.1金山词霸API使用方法,今天继续分享windows phone 8.1中百度翻译API的使用方法.和昨天 ...

  5. 原生js简单调用百度翻译API实现的翻译工具

    先来个在线demo: js翻译工具 或者百度搜索js简单调用百度翻译API工具(不过有个小小的界面显示bug,我想细心的人应该会发现) 或者直接前往该网址:js翻译工具 或者前往我的github:gi ...

  6. 利用百度翻译API,获取翻译结果

    利用百度翻译API,获取翻译结果 translate.py #!/usr/bin/python #-*- coding:utf-8 -*- import sys reload(sys) sys.set ...

  7. 有道翻译 / 百度翻译Api

    比较推荐使用百度翻译api 不推荐有道翻译,比较水. http://ai.youdao.com/docs/doc-trans-api.s#p02 http://ai.youdao.com/docs/d ...

  8. 百度翻译api 实现简易微信翻译小程序

    介绍 口袋翻译 口袋翻译 微信小程序 翻译功能 含7类语言的相互翻译 包含最近10条的翻译历史回溯功能 微信搜索:简e翻译 功能展示   使用百度翻译api需要申请 appid 与 key 并在 ap ...

  9. Go语言使用百度翻译api

    Go语言使用百度翻译api 之前做过一个使用百度翻译api的工具,这个工具用于用户的自动翻译功能,是使用C#调用百度翻译api接口,既然在学习Go语言,那必然也是要使用Go来玩耍一番.这里我是这么安排 ...

随机推荐

  1. 轻量级web框架cicada----(转)

    源码地址: https://github.com/TogetherOS/cicada 快速启动 下面来看看如何快速启动一个 HTTP 服务. 只需要创建一个 Maven 项目,并引入核心包. < ...

  2. 最全Pycharm教程(1)——定制外观

    http://blog.csdn.net/u013088062/article/details/50100121

  3. LOJ 2586 「APIO2018」选圆圈——KD树

    题目:https://loj.ac/problem/2586 只会 19 分的暴力. y 都相等,仍然按直径从大到小做.如果当前圆没有被删除,那么用线段树把 [ x-r , x+r ] 都打上它的标记 ...

  4. Spring Cloud(Dalston.SR5)--Eureka 注册中心搭建

    基于 Netflix Eureka 做了二次封装,主要负责完成微服务架构中的服务治理功能,服务治理可以说是微服务架构中最为核心和基础的模块,他主要用来实现各个微服务实例的自动化注册与发现 服务注册:在 ...

  5. mac下安装、配置redies

    https://blog.csdn.net/qq_21383435/article/details/80676497 可视化客户端安装(Mac): ruby -e "$(curl -fsSL ...

  6. 值得收藏的JSP连接mysql数据库的例子

    1:用mysql驱动把mysql与tomcat的连接起来.把mysql驱动包(不用解压)放到Tomcat安装目录中lib文件夹下即可. 2:然后在自己的新建的web应用程序上面就可以下下面的代码 3: ...

  7. 黄聪:浓缩的才是精华:浅析GIF格式图片的存储和压缩(转)

    http://www.cnblogs.com/qcloud1001/p/6647080.html 成文迪, 在Web前端摸爬滚打的码农一枚,对技术充满热情的菜鸟,致力为手Q的建设添砖加瓦. GIF格式 ...

  8. sublime 最近用的有点卡

    index_files:false,

  9. ALGO-149_蓝桥杯_算法训练_5-2求指数

    AC代码: #include <stdio.h> int main(void) { int n,m,sum; int i,j; scanf("%d %d",&n ...

  10. SQL Server的分页优化及Row_Number()分页存在的问题

    最近有项目反应,在服务器CPU使用较高的时候,我们的事件查询页面非常的慢,查询几条记录竟然要4分钟甚至更长,而且在翻第二页的时候也是要这么多的时间,这肯定是不能接受的,也是让现场用SQLServerP ...