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

http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/%E7%99%BE%E5%BA%A6%E7%BF%BB%E8%AF%91API

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"}]}
*/
}

  

csharp:百度翻译的更多相关文章

  1. Android开发学习之路-机器学习库(图像识别)、百度翻译

    对于机器学习也不是了解的很深入,今天无意中在GitHub看到一个star的比较多的库,就用着试一试,效果也还行.比是可能比不上TensorFlow的,但是在Android上用起来比较简单,毕竟Tens ...

  2. C# 调用百度翻译Api

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

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

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

  4. Python 调用百度翻译API

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

  5. 百度翻译&&金山词霸API

    #/usr/bin/env python3 #coding=utf8 """百度翻译api功能实现函数,本模块基于Python3.x实现,getTransResult(q ...

  6. 百度翻译word-wrap,页面错乱原因查找过程(已修复)

    今天群里有人发问, 进入百度翻译http://fanyi.baidu.com/#auto/zh/, 输入word-wrap,发现页面错乱. 寻找错乱原因. 上图 开始查找原因: 1.从请求入手 从ch ...

  7. 百度翻译API

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs& ...

  8. Asp.NET调用百度翻译

    Asp.NET调用百度翻译,图示: HTML: <%@ Page Language="C#" AutoEventWireup="true" CodeFil ...

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

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

随机推荐

  1. composite

    #coding:utf-8 import math # 在确定函数前,我们先来了解下算法 # 有数 n 判断其是否是合数 # 如果 n 除以 range(2,math.sqrt(n)+1) 能够整除, ...

  2. 海蜘蛛WiFiDog固件 MTK7620 OEM,带云AC功能、探针、广告插入,MTK7620解包打包维修默认参数

    修改内容: 1.系统默认管理员员帐号密码 2.系统默认LAN 接口地址 3.系统默认DHCP及保留地址 4.系统默认云AC远程地址及协议内容 5.系统默认JS插入地址 6.系统默认探针位置 7.默认顶 ...

  3. Navicat for MySQL Mac 破解版

    今天在macOS 系统下搭建 Java开发环境,需要配置MySQL,按照Windows的习惯,使用Navicat for MySQL 操作比较习惯.然后找不到比较好的破解版,这里介绍一个老版的,还是英 ...

  4. iOS开发 - AVPlayer实现流音频边播边存

    边播边下有三套左右实现思路,本文使用AVPlayer + AVURLAsset实现. 概述 1. AVPlayer简介 AVPlayer存在于AVFoundation中,可以播放视频和音频,可以理解为 ...

  5. GCC 编译使用动态链接库 LD

    可以把当前路径加入 /etc/ld.so.conf中然后运行ldconfig,或者以当前路径为参数运行ldconfig 2.把当前路径加入环境变量LD_LIBRARY_PATH中3. 如果你觉得不会引 ...

  6. Win7下安装配置gVim

    本文根据vim官网的<Simple Steps to Help You Install gVim on Windows 7>[1]一文整理而成. 1. 下载gVim 在http://www ...

  7. RestTemplate 使用总结

    场景: 认证服务器需要有个 http client 把前端发来的请求转发到 backend service, 然后把 backend service 的结果再返回给前端,服务器本身只做认证功能. 遇到 ...

  8. UML3

    在UML系统开发中有三个主要的模型: 功能模型: 从用户的角度展示系统的功能,包括用例图. 对象模型: 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图. 动态模型: 展现系统的内部行为 ...

  9. 从function前面的!想到的

    最近没事喜欢看看,一些js库的源码,结果发现库前不是加一个!就是加+或者一个(),心中猜出个大概知道这个是让函数自动执行,可是这么多符号达到同一个目的,原理是什么呢,下面做一下剖析: 先从IIFE开始 ...

  10. 【Java】深入理解ThreadLocal

    一.前言 要理解ThreadLocal,首先必须理解线程安全.线程可以看做是一个具有一定独立功能的处理过程,它是比进程更细度的单位.当程序以单线程运行的时候,我们不需要考虑线程安全.然而当一个进程中包 ...