参考:http://api.fanyi.baidu.com/api/trans/product/index

http://developer.baidu.com/wiki/index.php?title=帮助文档首页/百度翻译API

winform:

    /// <summary>
/// 涂聚文
/// </summary>
public partial class Form5 : Form
{
TranClass tranClass = new TranClass();
string url = "";
string youAPI_Id = "geovindu";
/// <summary>
///
/// </summary>
/// <returns></returns>
DataTable setLanguage()
{
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string));
dt.Rows.Add(1, "中文--英文");
dt.Rows.Add(2, "英文--中文");
dt.Rows.Add(3, "中文--日文");
dt.Rows.Add(4, "日文--中文");
dt.Rows.Add(5, "中文--韩文");
dt.Rows.Add(6, "韩文--中文");
dt.Rows.Add(7, "西班牙文--中文");
dt.Rows.Add(8, "中文--西班牙文");
return dt;
}
/// <summary>
///
/// </summary>
public Form5()
{
InitializeComponent();
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form5_Load(object sender, EventArgs e)
{
this.cbxTranslateChange.DataSource = setLanguage();
this.cbxTranslateChange.ValueMember = "id";
this.cbxTranslateChange.DisplayMember = "name";
}
/// <summary>
/// 翻译
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
WebClient client = new WebClient();  //引用System.Net
string fromTranslate = tbxFromContent.Text; //翻译前的内容
if (!string.IsNullOrEmpty(fromTranslate))
{
//client_id为自己的api_id,q为翻译对象,from为翻译语言,to为翻译后语言
string url = string.Format("http://openapi.baidu.com/public/2.0/bmt/translate?client_id={0}&q={1}&from={2}&to={3}", youAPI_Id, fromTranslate, tranClass.From, tranClass.To);
var buffer = client.DownloadData(url);
string result = Encoding.UTF8.GetString(buffer);
StringReader sr = new StringReader(result);
JsonTextReader jsonReader = new JsonTextReader(sr); //引用Newtonsoft.Json 自带
JsonSerializer serializer = new JsonSerializer();
var r = serializer.Deserialize<TranClass>(jsonReader); //因为获取后的为json对象 ,实行转换
tbxToContent.Text = r.Trans_result[0].dst;  //dst为翻译后的值
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cbxTranslateChange_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox comboBox = sender as ComboBox;
switch (comboBox.SelectedIndex)
{
case 1:
tranClass.From = "zh";
tranClass.To = "en";
break;
case 2:
tranClass.From = "en";
tranClass.To = "zh";
break;
case 3:
tranClass.From = "zh";
tranClass.To = "jp";
break;
case 4:
tranClass.From = "jp";
tranClass.To = "zh";
break;
case 5:
tranClass.From = "zh";
tranClass.To = "kor";
break;
case 6:
tranClass.From = "kor";
tranClass.To = "zh";
break;
case 7:
tranClass.From = "zh";
tranClass.To = "spa";
break;
case 8:
tranClass.From = "spa";
tranClass.To = "zh";
break;
default:
tranClass.From = "auto";
tranClass.To = "auto";
break;
}
}
}
public class TranClass
{
public string From { get; set; }
public string To { get; set; }
public List<Trans_result> Trans_result { get; set; }
}
public class Trans_result
{
public string src { get; set; }
public string dst { get; set; }
}
/*
语言简写    名称
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 繁体中文
*/
}

  

webform:

 TranClass tranClass = new TranClass();
string url = "www.dusystem.com";
string youAPI_Id = "geovindu";
/// <summary>
/// 涂聚文
/// </summary>
/// <returns></returns>
DataTable setLanguage()
{
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("name", typeof(string));
dt.Rows.Add(1, "中文--英文");
dt.Rows.Add(2, "英文--中文");
dt.Rows.Add(3, "中文--日文");
dt.Rows.Add(4, "日文--中文");
dt.Rows.Add(5, "中文--韩文");
dt.Rows.Add(6, "韩文--中文");
dt.Rows.Add(7, "西班牙文--中文");
dt.Rows.Add(8, "中文--西班牙文");
return dt;
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.DropDownList1.DataSource = setLanguage();
this.DropDownList1.DataTextField = "name";
this.DropDownList1.DataValueField = "id";
this.DropDownList1.DataBind();
//DropDownList1.SelectedIndex = 0;
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
int k = int.Parse(DropDownList1.SelectedValue);
switch (k)
{
case 1:
tranClass.From = "zh";
tranClass.To = "en";
break;
case 2:
tranClass.From = "en";
tranClass.To = "zh";
break;
case 3:
tranClass.From = "zh";
tranClass.To = "jp";
break;
case 4:
tranClass.From = "jp";
tranClass.To = "zh";
break;
case 5:
tranClass.From = "zh";
tranClass.To = "kor";
break;
case 6:
tranClass.From = "kor";
tranClass.To = "zh";
break;
case 7:
tranClass.From = "zh";
tranClass.To = "spa";
break;
case 8:
tranClass.From = "spa";
tranClass.To = "zh";
break;
default:
tranClass.From = "auto";
tranClass.To = "auto";
break;
}
WebClient client = new WebClient();  //引用System.Net
string fromTranslate = this.TextBox1.Text; //翻译前的内容
if (object.Equals(tranClass, null))
{
tranClass.From = "zh";
tranClass.To = "en";
}
if (!string.IsNullOrEmpty(fromTranslate))
{
//client_id为自己的api_id,q为翻译对象,from为翻译语言,to为翻译后语言
string url = string.Format("http://openapi.baidu.com/public/2.0/bmt/translate?client_id={0}&q={1}&from={2}&to={3}", youAPI_Id, fromTranslate, tranClass.From, tranClass.To);
var buffer = client.DownloadData(url);
string result = Encoding.UTF8.GetString(buffer);
StringReader sr = new StringReader(result);
JsonTextReader jsonReader = new JsonTextReader(sr); //引用Newtonsoft.Json 自带
while (jsonReader.Read())
{
//Response.Write(jsonReader.Value.ToString()   "<br/>");//jsonReader.TokenType.ToString()   ""   jsonReader.ValueType.ToString()   ""
}
Response.Write(CallInterface(fromTranslate, tranClass.From, tranClass.To));
var j = JsonConvert.DeserializeObject<TranClass>(result);
//JsonSerializer serializer = new JsonSerializer();
//TranClass p1 = (TranClass)serializer.Deserialize(new JsonTextReader(sr), typeof(TranClass));
//TranClass r = serializer.Deserialize<TranClass>(jsonReader); //因为获取后的为json对象 ,实行转换  反序列化 错误
//this.TextBox2.Text = r.Trans_result[0].dst;  //dst为翻译后的值
if (!object.Equals(j, null))
{
this.TextBox2.Text = j.Trans_result[0].dst;
}
}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (DropDownList1.SelectedIndex)
{
case 0:
tranClass.From = "zh";
tranClass.To = "en";
break;
case 1:
tranClass.From = "en";
tranClass.To = "zh";
break;
case 2:
tranClass.From = "zh";
tranClass.To = "jp";
break;
case 3:
tranClass.From = "jp";
tranClass.To = "zh";
break;
case 4:
tranClass.From = "zh";
tranClass.To = "kor";
break;
case 5:
tranClass.From = "kor";
tranClass.To = "zh";
break;
case 6:
tranClass.From = "zh";
tranClass.To = "spa";
break;
case 7:
tranClass.From = "spa";
tranClass.To = "zh";
break;
default:
tranClass.From = "auto";
tranClass.To = "auto";
break;
}
}
/// <summary>
/// 请求百度接口
///
/// https://github.com/lbv/litjson
/// </summary>
/// <param name="sub">要翻译的文本</param>
/// <param name="from">from语言</param>
/// <param name="to">翻译为语言</param>
/// <returns></returns>
private string CallInterface(string sub, string from, string to)
{
HttpContext.Current.Application.Lock();
if (HttpContext.Current.Application["baidu"] == null)
{
HttpContext.Current.Application["baidu"] = 1;
}
else
{
HttpContext.Current.Application["baidu"] = (int)HttpContext.Current.Application["baidu"]   1;
}
HttpContext.Current.Application.UnLock();
string url = string.Format("http://openapi.baidu.com/public/2.0/bmt/translate?client_id={0}&q={1}&from={2}&to={3}", youAPI_Id, sub, from, to);
string down = "", result = "";
try
{
WebClient wc = new WebClient();
down = wc.DownloadString(url);
}
catch (Exception)
{
}
JsonData jd = JsonMapper.ToObject(down);
if (JsonDataContainsKey(jd, "error_code"))
{
result  = sub;
}
else
{
JsonData jdResult = jd["trans_result"];
for (int j = 0; j < jdResult.Count; j  )
{
JsonData jdDst = jdResult[j]["dst"];
result  = jdDst.ToString();
}
}
return result;
}
/// <summary>
///
/// </summary>
/// <param name="data"></param>
/// <param name="key"></param>
/// <returns></returns>
public bool JsonDataContainsKey(JsonData data, string key)
{
bool result = false;
if (data == null)
return result;
if (!data.IsObject)
{
return result;
}
IDictionary tdictionary = data as IDictionary;
if (tdictionary == null)
return result;
if (tdictionary.Contains(key))
{
result = true;
}
return result;
}
}
/// <summary>
///
/// </summary>
public class TranClass
{
public string From { get; set; }
public string To { get; set; }
public List<Trans_result> Trans_result { get; set; }
}
/// <summary>
///
/// </summary>
public class Trans_result
{
/// <summary>
/// 原文
/// </summary>
public string src { get; set; }
/// <summary>
/// 翻译后的值
/// </summary>
public string dst { get; set; }
}
/*
{"from":"zh","to":"en","trans_result":[{"src":"\u4e2d\u56fd","dst":"China"}]}
*/
}

  

更多专业前端知识,请上 【猿2048】www.mk2048.com

csharp:百度翻译相关推荐

  1. C#调用百度翻译API实现自己的简单翻译工具

    前几天因为频繁使用翻译功能,但是市面上的翻译软件都臃肿了,对我我这个只需要翻译的人没有什么太大用处,反而有更多弊端. 于是在百度开发者中心申请了一个百度翻译的API.自己写了一个简单的翻译功能.仅供自 ...

  2. 【青少年编程】黄羽恒:翻译小工具 -- 利用百度翻译

    「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复[Scratch]或[Python],即可进入.如果加入了之前的社群不需要重复加入. 微信后台回复"资料下载&quo ...

  3. 全球首个突破200种语言互译的翻译引擎,百度翻译打破世界沟通壁垒

    机器翻译作为人工智能关键技术之一,正日益成为企业智能化升级的重要应用场景.12月1日,百度大脑开放日举办了以"机器翻译 沟通全世界"为主题的专场活动. IDC 中国副总裁兼首席分析 ...

  4. 百度翻译Q1 DAU增长40%,疫情期学生在线学习率猛增

    5月11日,百度翻译公布最新的DAU(日活跃用户数量)相关数据,2020年Q1较上一个季度环比增长10%,较去年Q1同比增长40%. 此外,百度翻译还在一个季度内,将翻译的语种扩充了近7倍,目前百度翻 ...

  5. Python爬虫之破解百度翻译--requests案例详解(二)

    这节课我们接着上节课的内容,继续学习requests之破解百度翻译案例.我们上节课已经知道了解题思路,这节课我们来看看代码怎么写. 1.首先导入requests模块 ** ** ** ** 2.获取请 ...

  6. Python爬虫之破解百度翻译--requests案例详解(一)

    们通过requests模块讲了简单的网页采集方法,这一节课我们讲一下怎么用requests模块破解百度翻译.其中包含的知识点有post请求.Jason.异步加载等内容.这节课由于信息量比较大,所以分两 ...

  7. 百度翻译十年:语种全球首破200大关,质量提升30个百分点,每天翻译超千亿字符...

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 十年,能让一个机器翻译系统发生怎样的变化? 2011年,TA还只会"中-英"翻译这一项技能.但TA却用十年时间,在翻译这 ...

  8. 小朋友你是否有很多问号?疫情期间不打游戏却在背ABC,百度翻译日活同比增长40%...

    晓查 发自 凹非寺  量子位 报道 | 公众号 QbitAI 新冠疫情让学生们经历了一个最长的寒假.同样是学生,可能经历的是不同的寒假. 游戏公司今年第一季度的收入创下新高,还有学生集体给在线课堂Ap ...

  9. AI同传效果媲美人类,百度翻译出品全球首个上下文感知机器同传模型

    鱼羊 发自 凹非寺  量子位 报道 | 公众号 QbitAI AI同传领域又有新进展,这次突破来自百度. 百度机器翻译团队创新性地提出了全球首个感知上下文的机器同传模型,并基于此发布了最新的语音到语音 ...

最新文章

  1. 四大顶级专家谈AlphaFold2:关于技术细节、局限与意义
  2. python3字典升序排序_Python字典和元组总结
  3. 直播这把“火”,还能烧多久?
  4. Actor-ES框架:Ray--事件(Event)编写说明
  5. (十三)java版spring cloud+spring boot+redis社交电子商务平台-springboot集成spring cache...
  6. OJ1022: 三整数排序
  7. 《JAVA与模式》之观察者模式
  8. linux拷贝带子文件夹命令,简单带子目录的makefile练习
  9. win7 mysql8.0.11安装教程_mysql8.0.13下载与安装图文教程(示例代码)
  10. CridView创建 实现选中,编辑,取消,删除
  11. oracle数据库max使用,Oracle / PLSQL MAX函数
  12. NVIDIA显卡驱动重装
  13. React纯前端生成word文档(支持多图片导出)
  14. Oracle用户管理命令
  15. 计算机保存不了自动还原,win7系统颜色校准无法保存开机自动还原默认的处理步骤...
  16. Android 10开启调试模式
  17. .git文件夹过大,给它瘦身
  18. STAR-Situation\Target\Action\Result
  19. 前端——CSS部分总结
  20. 电信卡_短信查询指令

热门文章

  1. 2016.04.28,英语,《Vocabulary Builder》Unit 20
  2. tensorflow之复数操作
  3. Java要抛弃祖宗的基业,Java程序员危险了
  4. PPT个人学习笔记(四)——神奇移动的实现
  5. 企业为何需要建立统一的复用型软件平台?
  6. 自己实现一个可以折叠展开的TextView
  7. 百度启动干部轮岗 涉及三位副总裁
  8. 图片放大不失真软件PhotoZoom如何使用?
  9. 网络工程师认证:HCIE(华为ICT专家认证)
  10. educode寄存器设计与应用之循环移位寄存器的设计、并行存取的移位寄存器的设计(在Logisim上实现)