C#调用百度翻译API自动将中文转化为英文,按行转换

这篇具有很好参考价值的文章主要介绍了C#调用百度翻译API自动将中文转化为英文,按行转换。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们可以使用百度翻译API获取到翻译结果

翻译API地址:

http://api.fanyi.baidu.com/api/trans/vip/translate

 一、新建窗体应用程序TranslatorDemo,将默认的Form1重命名为FormTranslator。

窗体FormTranslator设计器如图:

C#调用百度翻译API自动将中文转化为英文,按行转换,C#,GDI,文本编码,c#,开发语言,翻译,翻译API

 窗体设计器源代码如下:

文件:FormTranslator.Designer.cs

namespace TranslatorDemo
{
    partial class FormTranslator
    {
        /// <summary>
        /// 必需的设计器变量。
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// 清理所有正在使用的资源。
        /// </summary>
        /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows 窗体设计器生成的代码

        /// <summary>
        /// 设计器支持所需的方法 - 不要修改
        /// 使用代码编辑器修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.bntToEnglish = new System.Windows.Forms.Button();
            this.label1 = new System.Windows.Forms.Label();
            this.rtxtChinese = new System.Windows.Forms.RichTextBox();
            this.label2 = new System.Windows.Forms.Label();
            this.rtxtEnglish = new System.Windows.Forms.RichTextBox();
            this.btnToChinese = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // bntToEnglish
            // 
            this.bntToEnglish.Location = new System.Drawing.Point(638, 181);
            this.bntToEnglish.Name = "bntToEnglish";
            this.bntToEnglish.Size = new System.Drawing.Size(102, 23);
            this.bntToEnglish.TabIndex = 2;
            this.bntToEnglish.Text = "中文转英文>>";
            this.bntToEnglish.UseVisualStyleBackColor = true;
            this.bntToEnglish.Click += new System.EventHandler(this.bntToEnglish_Click);
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Font = new System.Drawing.Font("宋体", 13F);
            this.label1.Location = new System.Drawing.Point(9, 11);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(53, 18);
            this.label1.TabIndex = 1;
            this.label1.Text = "中文:";
            // 
            // rtxtChinese
            // 
            this.rtxtChinese.Location = new System.Drawing.Point(12, 44);
            this.rtxtChinese.Name = "rtxtChinese";
            this.rtxtChinese.Size = new System.Drawing.Size(609, 623);
            this.rtxtChinese.TabIndex = 0;
            this.rtxtChinese.Text = "";
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Font = new System.Drawing.Font("宋体", 13F);
            this.label2.Location = new System.Drawing.Point(749, 11);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(53, 18);
            this.label2.TabIndex = 3;
            this.label2.Text = "英文:";
            // 
            // rtxtEnglish
            // 
            this.rtxtEnglish.Location = new System.Drawing.Point(752, 44);
            this.rtxtEnglish.Name = "rtxtEnglish";
            this.rtxtEnglish.Size = new System.Drawing.Size(609, 624);
            this.rtxtEnglish.TabIndex = 1;
            this.rtxtEnglish.Text = "";
            // 
            // btnToChinese
            // 
            this.btnToChinese.Location = new System.Drawing.Point(638, 266);
            this.btnToChinese.Name = "btnToChinese";
            this.btnToChinese.Size = new System.Drawing.Size(102, 23);
            this.btnToChinese.TabIndex = 3;
            this.btnToChinese.Text = "<<英文转中文";
            this.btnToChinese.UseVisualStyleBackColor = true;
            this.btnToChinese.Click += new System.EventHandler(this.btnToChinese_Click);
            // 
            // FormTranslator
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(1371, 679);
            this.Controls.Add(this.btnToChinese);
            this.Controls.Add(this.rtxtEnglish);
            this.Controls.Add(this.label2);
            this.Controls.Add(this.rtxtChinese);
            this.Controls.Add(this.label1);
            this.Controls.Add(this.bntToEnglish);
            this.Name = "FormTranslator";
            this.Text = "中文批量翻译为英文";
            this.ResumeLayout(false);
            this.PerformLayout();

        }

        #endregion

        private System.Windows.Forms.Button bntToEnglish;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.RichTextBox rtxtChinese;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.RichTextBox rtxtEnglish;
        private System.Windows.Forms.Button btnToChinese;
    }
}

二、新建关键翻译类TranslateUtil

TranslateUtil.cs源程序如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Web.Script.Serialization;
using System.Web.Security;

namespace TranslatorDemo
{
    /// <summary>
    /// 翻译过程
    /// </summary>
    public class TranslateUtil
    {
        /// <summary>
        /// 使用Get的方式调用百度API进行翻译
        /// </summary>
        /// <param name="content">要转化的文本</param>
        /// <param name="languageFrom">要转化的语言</param>
        /// <param name="languageTo">目标语言</param>
        /// <returns></returns>
        public static FeedbackResult TranslateGet(string content, string languageFrom, string languageTo)
        {
            string appId = "20230722001753350";
            string passWord = "your password";
            string randomNum = new Random().Next().ToString();
            string md5Sign = FormsAuthentication.HashPasswordForStoringInConfigFile(appId + content + randomNum + passWord, "MD5").ToLower();
            string FullRequest = "http://api.fanyi.baidu.com/api/trans/vip/translate?q=" + content + "&from=" + languageFrom + "&to=" + languageTo + "&appid=" + appId + "&salt=" + randomNum + "&sign=" + md5Sign;
            try
            {
                string resultContent = new WebClient().DownloadString(FullRequest);
                FeedbackResult feedbackResult = new JavaScriptSerializer().Deserialize<FeedbackResult>(resultContent);
                feedbackResult.ResponseJson = resultContent;
                return feedbackResult;
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
                return new FeedbackResult()
                {
                    Error_code = "-1",
                    Error_msg = ex.Message
                };
            }
        }

        /// <summary>
        /// 使用Post的方式调用百度API进行翻译
        /// </summary>
        /// <param name="content">要转化的文本</param>
        /// <param name="languageFrom">要转化的语言</param>
        /// <param name="languageTo">目标语言</param>
        /// <returns></returns>
        public static FeedbackResult TranslatePost(string content, string languageFrom, string languageTo)
        {
            string appId = "20230722001753350";
            string passWord = "your password";
            string randomNum = new Random().Next().ToString();

            #region 获取MD5加密编码后的小写格式文本
            System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
            byte[] buffer = md5.ComputeHash(Encoding.UTF8.GetBytes(appId + content + randomNum + passWord));
            string md5Sign = string.Join("", buffer.Select(x => x.ToString("x2")));//转化为小写
            #endregion

            try
            {
                WebClient webClient = new WebClient();
                System.Collections.Specialized.NameValueCollection nameValueCollection = new System.Collections.Specialized.NameValueCollection();
                nameValueCollection.Add("q", content);
                nameValueCollection.Add("from", languageFrom);
                nameValueCollection.Add("to", languageTo);
                nameValueCollection.Add("appid", appId);
                nameValueCollection.Add("salt", randomNum);
                nameValueCollection.Add("sign", md5Sign);
                string apiUrl = "http://api.fanyi.baidu.com/api/trans/vip/translate";
                byte[] bytes = webClient.UploadValues(apiUrl, "POST", nameValueCollection);
                string resultContent = Encoding.UTF8.GetString(bytes);
                FeedbackResult feedbackResult = new JavaScriptSerializer().Deserialize<FeedbackResult>(resultContent);
                feedbackResult.ResponseJson = resultContent;
                return feedbackResult;
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show(ex.Message);
                return new FeedbackResult()
                {
                    Error_code = "-1",
                    Error_msg = ex.Message
                };
            }
        }
    }

    /// <summary>
    /// 反馈结果类
    /// </summary>
    public class FeedbackResult
    {
        /// <summary>
        /// 错误号,翻译出错时有此项,翻译成功时该项为null
        /// </summary>
        public string Error_code { set; get; }
        /// <summary>
        /// 错误消息,翻译出错时代表出错信息,翻译成功时该项为null
        /// </summary>
        public string Error_msg { set; get; }
        /// <summary>
        /// 起始语言
        /// </summary>
        public string From { set; get; }
        /// <summary>
        /// 目标语言
        /// </summary>
        public string To { set; get; }
        /// <summary>
        /// 响应的源Json字符串,自定义项
        /// </summary>
        public string ResponseJson { set; get; }
        /// <summary>
        /// 翻译结果,翻译失败时该项为null,翻译成功时按照换行符"\n"来分割的数组,元组数据
        /// </summary>
        public TranslateResult[] Trans_result { set; get; }
    }

    /// <summary>
    /// 翻译结果类
    /// </summary>
    public class TranslateResult
    {
        /// <summary>
        /// 源文本 Source
        /// </summary>
        public string Src { set; get; }
        /// <summary>
        /// 翻译后的文本 Destination
        /// </summary>
        public string Dst { set; get; }
    }

    /// <summary>
    /// 语言枚举常数
    /// </summary>
    public class Language
    {
        public const string 自动检测 = "auto";
        public const string 中文 = "zh";
        public const string 英语 = "en";
        public const string 粤语 = "yue";
        public const string 文言文 = "wyw";
        public const string 日语 = "jp";
        public const string 韩语 = "kor";
        public const string 法语 = "fra";
        public const string 西班牙语 = "spa";
        public const string 泰语 = "th";
        public const string 阿拉伯语 = "ara";
        public const string 俄语 = "ru";
        public const string 葡萄牙语 = "pt";
        public const string 德语 = "de";
        public const string 意大利语 = "it";
        public const string 希腊语 = "el";
        public const string 荷兰语 = "nl";
        public const string 波兰语 = "pl";
        public const string 保加利亚语 = "bul";
        public const string 爱沙尼亚语 = "est";
        public const string 丹麦语 = "dan";
        public const string 芬兰语 = "fin";
        public const string 捷克语 = "cs";
        public const string 罗马尼亚语 = "rom";
        public const string 斯洛文尼亚语 = "slo";
        public const string 瑞典语 = "swe";
        public const string 匈牙利语 = "hu";
        public const string 繁体中文 = "cht";
        public const string 越南语 = "vie";
    }
}

三、窗体FormTranslator测试程序如下:

文件FormTranslator.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TranslatorDemo
{
    public partial class FormTranslator : Form
    {
        public FormTranslator()
        {
            InitializeComponent();
            /*string test = @"上料X轴 错误
上料X轴 伺服错误
上料X轴 手自动冲突
上料Y轴 错误
上料Y轴 伺服错误
上料Y轴 手自动冲突
上料Z轴 错误
上料Z轴 伺服错误
上料Z轴 手自动冲突
上料模组取料夹爪气缸 原位报警
上料模组取料夹爪气缸 动位报警
上料模组取料夹爪气缸 手自动冲突
上料模组取料夹爪气缸 错误
上料模组升降气缸 原位报警
上料模组升降气缸 动位报警
上料模组升降气缸 手自动冲突
上料模组升降气缸 错误
上料模组滑台气缸 原位报警
上料模组滑台气缸 动位报警
上料模组滑台气缸 手自动冲突
上料模组滑台气缸 错误
上料模组 取料失败
上料模组 中途掉料
上料模组 夹爪放料报警
上料模组 夹爪取料报警";
            string english = @"message queue
death knight
sword seven
the move speed is 200 mm/s
thunder bird";*/
        }

        private void bntToEnglish_Click(object sender, EventArgs e)
        {
            rtxtEnglish.Clear();
            FeedbackResult feedbackResult = TranslateUtil.TranslatePost(rtxtChinese.Text.Trim(), Language.中文, Language.英语);
            TranslateResult[] contents = feedbackResult.Trans_result;
            for (int i = 0; contents != null && i < contents.Length; i++)
            {
                rtxtEnglish.AppendText($"【{contents[i].Dst}】<-【{contents[i].Src}】\n");
            }
            rtxtEnglish.AppendText($"响应的源Json数据为:\n{feedbackResult.ResponseJson}");
        }

        private void btnToChinese_Click(object sender, EventArgs e)
        {
            rtxtChinese.Clear();
            FeedbackResult feedbackResult = TranslateUtil.TranslateGet(rtxtEnglish.Text.Trim(), Language.英语, Language.中文);
            TranslateResult[] contents = feedbackResult.Trans_result;
            for (int i = 0; contents != null && i < contents.Length; i++)
            {
                rtxtChinese.AppendText($"【{contents[i].Dst}】<-【{contents[i].Src}】\n");
            }
            rtxtChinese.AppendText($"响应的源Json数据为:\n{feedbackResult.ResponseJson}");
        }
    }
}

四、测试运行如图:

【需要到百度上申请开发者账号appId和密码password】

①中文--->英文

C#调用百度翻译API自动将中文转化为英文,按行转换,C#,GDI,文本编码,c#,开发语言,翻译,翻译API

 ②英文--->中文

C#调用百度翻译API自动将中文转化为英文,按行转换,C#,GDI,文本编码,c#,开发语言,翻译,翻译API

 文章来源地址https://www.toymoban.com/news/detail-634352.html

到了这里,关于C#调用百度翻译API自动将中文转化为英文,按行转换的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 调用百度文心AI作画API实现中文-图像跨模态生成

    乔冠华,女,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组。 研究方向:机器视觉与人工智能。 电子邮件:1078914066@qq.com 文心ERNIE-ViLG,一款适合中文的跨模态AI绘画大模型。 论文地址:https://arxiv.org/pdf/2112.15283.pdf 体验连接:https://wenxin.baidu.com/ern

    2024年02月03日
    浏览(17)
  • ImageNet1000分类,英文原版,中文翻译版

    在训练模型时,可以用imagenet或者 CIFAR进行分类训练,下面是一些分类介绍 imagenet官网网址 1-398:动物 399-924:物品 925-1000:食物 CIFAR10官网 这些分类是完全互斥的。比如“汽车”包括轿车、SUV 等。“卡车”只包括大型卡车,不包括皮卡车。 两个分类是无重叠的 CIFAR100官网

    2024年02月14日
    浏览(18)
  • 【单片机】DS2431英文手册,中文手册,翻译

    DS2431是一款1024位的1-Wire® EEPROM芯片,以每个256位的四个内存页面组织。数据被写入8字节的暂存区,经过验证,然后复制到EEPROM存储器中。作为一个特殊功能,四个内存页面可以单独地被写保护,或者被置于EPROM仿真模式,其中位只能从1更改为0。DS2431通过单导线1-Wire总线进行

    2024年02月04日
    浏览(18)
  • 简单的手机记事本怎么把英文翻译成中文?

    手机记事本是人们常用的辅助工具之一,在使用手机记事本记录内容的时候,除了我们平时使用较多的中文之外,也有人会记录一些英文内容。想要将手机记事本中的英文内容翻译成中文内容应该如何操作呢?以iPhone手机端敬业签记事本软件为例: 1、打开iPhone手机上的敬业

    2024年02月16日
    浏览(36)
  • 百度翻译API —— 通用文本翻译

    目录 接入方式 通用翻译API HTTPS 地址: 请求方式 返回结果 返回结果举例 正确情况: 异常情况: 错误码解析 请求翻译方法 语种列表 常见语种列表 完整语种列表 完整源码   通用翻译API通过 HTTP 接口对外提供多语种互译服务。需要指定翻译文本和目标语言,当前语言可以设

    2024年02月08日
    浏览(21)
  • 一款免费的中英文文本翻译的api接口

    一款免费的中英文文本翻译接口 重要提示:建议使用https协议,当https协议无法使用时再尝试使用http协议 请求方式: POST 序号 参数 是否必须 说明 1 ColaKey 是 唯一验证ColaKey, 可前往官网获取(http(s): //luckycola.com.cn) 2 text 是 需要被翻译的文本内容(中文或者英文文本) 3 fromlang 是 需要

    2024年02月09日
    浏览(22)
  • 百度翻译API使用教程(前端+后端)

    首先我们需要登录百度翻译开放平台,获取开发者资格: 访问 百度翻译开放平台 然后进行注册(如果有百度账号的话可以直接登录) 注册成功后点击“产品服务”: 跳转到通用文本API界面: 在页面底部点击“立即使用”即可选择服务进行使用 通用文本API有三种服务可供选

    2024年02月14日
    浏览(20)
  • 如何用Python语言调取百度翻译的API

    诸神缄默不语-个人CSDN博文目录 本文介绍如何用Python语言调用百度翻译的API服务。 理论上类似的写法也可以应用于其他语言。 http://api.fanyi.baidu.com/manage/developer可以注册开发者,或者APP ID和秘钥;然后还可以进行开发者认证,获得更多免费额度。 对于文中MD5加密的相关代码可

    2024年02月07日
    浏览(14)
  • 微信小程序 通过百度API接口实现汉译英翻译

    目录 先看一下做出来的效果: 一、微信开发平台的网址(微信开发者工具的官方使用说明) 二、百度API(文本翻译的API) 三、进入正文,微信小程序的代码部分 基础 | 微信开放文档 (qq.com) https://developers.weixin.qq.com/miniprogram/dev/api/   文本翻译_机器翻译-百度AI开放平台 (bai

    2024年02月09日
    浏览(24)
  • 人工智能CSDN版AI和百度AI代码转化测试,C#、Java代码转Python

    工作中,需要完成以下的工作场景: 【场景】单据转换不支持多选基础资料下推; 【案例】通过单据转换插件,实现应收单单据头的多选基础资料下推到付款申请单的单据头的多选基础资料 原文链接:https://vip.kingdee.com/article/324304152484608000?productLineId=1 需要将原代码转换为

    2024年02月03日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包