csharp:百度翻译

2023-11-15

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


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

csharp:百度翻译 的相关文章

  • 使用 wmi 获取活动会话(Win32_LogonSession 还返回非活动/旧会话)

    有没有办法只显示 wmi 的活动会话 问题是 Win32 LogonSession 还显示不活动 断开连接的会话 ManagementScope scope new ManagementScope ManagementPath Defaul
  • 依赖注入的惰性解析

    我有 net 课程 我使用 Unity 作为 IOC 来解决我们的依赖关系 它尝试在开始时加载所有依赖项 Unity中有没有一种方法 设置 允许在运行时加载依赖项 还有更好的解决方案 Unity 2 0 中对 Lazy 和 IEnumera
  • If 语句中 Bool 计算错误

    只是为了好奇 我的代码有这个问题 e被评估为false 我知道通过查看数据库中的数据会得到错误 但 if 语句并不关心这一点 并假设这是真的 并试图抛出异常 有什么想法吗 edit 没有 在第 16 行末尾 价值false是正确的 我已经检
  • & 在 xml 文件中算作一个还是多个字符?

    我正在使用的 XML 模式具有特定的字符串字符长度 所以我可能有一个类似的字符串 Jim Mary 在 C 中是 10 个字符 但是当它写入 xml 时 它会变成 Jim amp Mary 如果 XML 模式规定字符串最多只能有 10 个字
  • EF数据库首先如何针对数据库更改更新模型?

    在班级图书馆Ado net Entity Data Model已生成 POCO 类 这些是第一次生成的 但数据库更改并未得到反映 在edmx图表右键单击并选择Update Model from Database显示新创建的表 但即使选择添加
  • 如何将字符串解析为 UNIQUEIDENTIFIER?

    我正在编写一个实体框架 LINQ 查询 其中我想将字符串解析为 UNIQUEIDENTIFIER 又名 GUID 作为WHERE clause public IEnumerable
  • FullCalendar Asp.Net WebForms

    我正在尝试实施全日历 https i stack imgur com wmhGx png在我的 ASP NET 上WebForms项目 我见过一些实现此目的的示例 但没有任何运气 因为它们是针对我不习惯的 MVC 的 My Events数据
  • 对 URL 进行编码 C#

    所以我有一个看起来像这样的 URL http www test com folder1 id 3 但基本上 当他们单击按钮时 我想在 URL 栏中显示与该 id 关联的值的名称 例如 id 3 是名为 Rollex 的手表 所以我想要读取
  • 使用 ContractNamespace 属性设置 WCF DataContract 命名空间

    在设计我的服务时 我决定要自定义出现在生成的 WSDL 中的名称空间 对于数据合同 我遇到了合约命名空间 http msdn microsoft com en us library system runtime serialization
  • ASP.NET Core 与现有的 IoC 容器和环境?

    我想运行ASP NET 核心网络堆栈以及MVC在已托管现有应用程序的 Windows 服务环境中 以便为其提供前端 该应用程序使用 Autofac 来处理 DI 问题 这很好 因为它已经有一个扩展Microsoft Extensions D
  • 使用 WF 的多线程应用程序的错误处理模式?

    我正在写一个又长又详细的问题 但只是放弃了它 转而选择一个更简单的问题 但我在这里找不到答案 应用程序简要说明 我有一个 WPF 应用程序 它生成多个线程 每个线程执行自己的 WF 处理线程和 WF 中的错误 允许用户从 GUI 端进行交互
  • 从 Delphi 调用 C# dll

    我用单一方法编写了 Net 3 5 dll 由Delphi exe调用 不幸的是它不起作用 步骤 1 使用以下代码创建 C 3 5 dll public class MyDllClass public static int MyDllMet
  • 为什么文件更新时“如果较新则复制”不复制文件?

    我在 Visual Studio Express 中有一个解决方案 如下所示 The LogicSchemaC 中的类 将在运行时解析指定的 XML 文件 以下是在main的方法Program cs LogicSchema ls new L
  • 如何使用 .NET 4 运行时运行 PowerShell?

    我正在更新管理一些 NET 程序集的 PowerShell 脚本 该脚本是为针对 NET 2 与 PowerShell 运行的框架版本相同 构建的程序集编写的 但现在需要使用 NET 4 程序集以及 NET 2 程序集 由于 NET 4 支
  • 自定义行为的配置错误

    我创建了一个与 WCF 服务一起使用的自定义行为 以将所有错误记录到应用程序日志中 我做了一个BehaviorExtensionElement对于行为 public ErrorLoggingBehaviorExtensionElement
  • 使用 lambda 对多列进行分组

    如何使用 lambda 对多列进行分组 我看到了如何使用 linq toEntity 执行此操作的示例 但我正在寻找 lambda 形式 var query source GroupBy x gt new x Column1 x Colum
  • 没有端点在 net.pipe://localhost/ 上监听

    我有两个 WCF 服务托管在 Windows Server 2003 计算机上的单个 Windows 服务中 如果 Windows 服务需要访问任一 WCF 服务 例如发生定时事件时 它将使用公开的五个命名管道端点之一 不同的服务协定 该服
  • .NET Core == .NET Framework 5 吗?

    我一直在寻找书籍来研究最新的 NET Framework 据我所知 NET 最高为 4 6 但 ASP NET 最高为 5 核心 NET Core 是 NET 5 的名称还是我们目前仍使用 NET 4 6 去引用斯科特 汉塞尔曼 http
  • C# 要么返回 false 要么什么也不做

    我想知道是否有办法不必重复相同的事情如果施工而是调用一个状态检查 成功后无法返回true 有人知道这个问题更好的标题吗 bool Enable if GetStatus ref status Trace WriteLine Error re
  • 如何在 SqlDataReader.Read() 期间从死锁异常中恢复

    我的 NET 应用程序的事件日志显示 它在从 Sql Server 读取数据时偶尔会出现死锁 这种情况通常非常罕见 因为我们已经优化了查询以避免死锁 但有时仍然会发生 过去 我们在调用ExecuteReader函数在我们的SqlComman

随机推荐

  • C#中的接口(interface)

    接口的命名规范 I 名词 接口与抽象类的区别 接口是由抽象类演变而来的 抽象类是未完全实现逻辑的类 其内部可以有抽象成员 也可以有非抽象成员 且子类在覆写抽象成员时 需要修饰符override 而接口是完全未实现逻辑的 其内部只允许存在抽象
  • java报错:com.alibaba.druid.pool.DruidDataSource.info {dataSource-1} inited

    JDBC使用Druid连接池连接数据库的时候 遇到报错 com alibaba druid pool DruidDataSource info dataSource 1 inited 具体报错信息如下 从网页上报错信息 可以看到是获取驱动名
  • 彻底理解vue底层运用的核心函数Object.defineProperty

    一个函数诞生一个框架 vue就是得益于javaScrit的原生函数Object defineProperty而诞生的 那么Object defineProperty到底是什么 它的用法又是怎样的呢 很简单 它就是用来为对象定义属性的 从字面
  • 51单片机串口通信数码管显示

    外部晶振 11 0592MHZ 主控芯片 STC89C52 程序功能 串口工作方式1 8位UART 比特率9600 接收串口数据 数码管以十 进制格式显示 并且把接收到的数据加1后通过串口发出
  • 【Idea】创建包自动分层

    Idea 创建包自动分层 创建Maven 项目时 新建包使得Tomcat查找访问路径时更准确 但是有时包会不分层 如图1 然后我们使用图3的方法取消勾选 使得新建包时自动分层 如图2
  • 华为机试--简单题(一)

    HJ14 字符串排序 知识点 字符串 排序 描述 给定 n 个字符串 请对 n 个字符串按照字典序排列 数据范围 1 n 1000 字符串长度满足1 len 100 输入描述 输入第一行为一个正整数n 1 n 1000 下面n行为n个字符串
  • JAVA基于Slack实现异常日志报警

    一 功能介绍 在我们日常开发中 如果系统在线上环境上 发生异常 开发人员不能及时知晓来修复 可能会造成重大的损失 因此后端服务中加入异常报警的功能是十分必要的 而开发一个功能全面的异常报警服务 可能会花费较长的周期 今天给大家带来一种基于S
  • STM32F407基于RT-Thread连接ESP8266WiFi模块

    1 连接规则 STM32F4连接ESP8266无线通信 串口通信 首先 本次用到两个串口 我使用的是普中STM32F407 第一个串口为USART1 PA2 PA3 串口一 就是数据线连接单片机和电脑时用的口 串口三USART3 PB10T
  • 当面试官问你离职原因的时候怎么回答比较好?

    所有的前提都是建立在有一定的物质基础 当你的一日三餐都成了问题 都需要家庭支持的时候我希望你可以找一份工作 靠自己的本事养活自己从来不丢人 我觉得死要面子活受罪才是真的让你看不起 所有的建议都是建立在我们是普通打工人的前提 大佬是不需要建议
  • C++:二维数组--输出斐波那契数列的前20项

    大家都知道 在数学世界中有很多神奇的数列 斐波那契数列正是众多有规律的数列中的一种 该数列是意大利数学家列昂纳多 斐波那契发现的 他的基本规律是从第三项开始 每一项都等于前两项之和 第一项和第二项都是1 斐波那契数列如下图所示 1 1 2
  • http概述

    目录 概述 Web客户端和服务器 资源 http如何通信 媒体类型 URI 事务 方法 状态码 报文 连接 版本历程 Web的结构组件 代理 缓存 网关 隧道 Agent代理 爬虫 概述 HTTP是现代全球因特网中使用的公共语言 web浏览
  • 11个强大的Visual Studio调试小技巧

    伯乐在线注 我们在 程序员的那些事 微博上推荐了英文原文 感谢 halftone 被禁用了 的热心翻译 简介 调试是软件开发周期中很重要的一部分 它具有挑战性 同时也很让人疑惑和烦恼 总的来说 对于稍大一点的程序 调试是不可避免的 最近几年
  • 人工智能技术在软件开发中的应用

    人工智能技术的不断发展和成熟 使得它在软件开发中的应用越来越广泛 人工智能技术的应用可以帮助软件开发人员提高效率 降低成本 增强软件的功能性和可靠性 在本文中 我们将探讨人工智能技术在软件开发中的应用 并且提供一些实际案例 以帮助读者更好地
  • PHP 两个页面跳转,session会失效?

    两个页面都包含以下信息 可是 在A php中设置 SESSION go go 在B php中读出来的 SESSION
  • Pycharm远程连接服务器(实践笔记)

    Pycharm远程连接服务器 实践笔记 1 远程连接服务器 2 配置服务器上的环境 记录一下过程 防止自己隔一段时间又忘了 只有pycharm专业版才能远程连接 搞错了步骤1和2的顺序 然后代码一直不能实现同步 一下午配置了n次都不成功 不
  • java计算算术表达式

    直接上代码 String str 1 0 3 2 1 2 ScriptEngineManager manager new ScriptEngineManager ScriptEngine engine manager getEngineBy
  • Android 将布局文件放在服务器上,动态改变布局。

    转自 https blog csdn net chan1116 article details 44200405 目前在做项目时候有这样的需求 布局文件的控件类型大致相同 例如某布局文件由GridView ScrollView TextVi
  • 网银木马TrickBot的分析调试笔记

    Trickbot描述 Trickbot是2016年出现的一种网银木马 它以大银行的客户为目标 窃取他们的信息 自出现以来 新的变体不断出现 每次都有新的技巧和模块更新 Trickbot是一种模块化恶意软件 包括针对其恶意活动的不同模块 主要
  • Elasticsearch使用教程

    下载ES elasticsearch的下载地址 https www elastic co cn downloads elasticsearch ik分词器的下载地址 https github com medcl elasticsearch
  • csharp:百度翻译

    参考 http api fanyi baidu com api trans product index http developer baidu com wiki index php title E5 B8 AE E5 8A A9 E6 9