阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

教你如何利用C#调用百度翻译API实现一个翻译功能

79次阅读
没有评论

共计 2158 个字符,预计需要花费 6 分钟才能阅读完成。

导读 一直喜欢用 Google Translate API 进行在线翻译, 但是服务越来越慢这篇文章, 所以只能换一个了, 主要给大家介绍了关于 C# 调用百度翻译 API 实现一个翻译功能的相关资料, 需要的朋友可以参考下
前言

虽然百度翻译相对于谷歌翻译在准确性方面还有很大的提升空间,但网络的现实情况及百度翻译接口的免费易用性方面让我们选择百度翻译接口。下面来一起看看详细的步骤吧

方法如下

appId 和 passWord 需要到百度翻译开放平台申请

using System;
using System.Net;
using System.Web.Security;
using System.Web.Script.Serialization;
 
namespace TranslatorOfWang
{
    class TranslateFunction
    {public static string Translate(string content)
        {
            string languageFrom = "en", languageTo = "zh";
            if (Translate(content, languageFrom, languageTo).Error_code == null)
            {return Translate(content, languageFrom, languageTo).Trans_result[0].Dst;
            }
            else
                return Translate(content, languageFrom, languageTo).Error_msg;
        }
        public static PostResult Translate(string content, string languageFrom, string languageTo)
        {string appId = "2018111519456789", passWord = "gMk8wEKxENvbpUcvFxxx", 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;
            string m_Content = new WebClient().DownloadString(FullRequest);
            PostResult m_postResult = new JavaScriptSerializer().Deserialize(m_Content);
            return m_postResult;
        }
        public  class PostResult{public string Error_code { set; get;}
            public string Error_msg {set; get;}
            public string From {set; get;}
            public string To {set; get;}
            public TranslateContent[] Trans_result { set; get;}
        }
        public class TranslateContent
        {public string Src { set; get;}
            public string Dst {set; get;}
        }
    }
}

PostResult 为百度 API 返回的值类型组成的一个自定义类,类里的每个名字和百度翻译 API 返回值里名字要一致。

升级功能:

先将要翻译的文本写入 TXT 文档,存入主目录下的 File 目录下,可以用以下代码读取后翻译,用以解决每次翻译,百度翻译有句子长短限制的问题。TBTxtName.txt 为要翻译的文件名,要替换的符号以及语言可自己选择。

public void ReadAndTranslate()
{
    string TextName =“TBTxtName.txt”;
    string path = "File/";
    StreamReader sr = new StreamReader(path + TextName + ".txt", Encoding.Default);
    StreamWriter m_SW = new StreamWriter(path + DateTime.Now.ToString("yyyymmddhhmm") + "TransLated" + ".txt", true);
 
    // 去除符号重新定义句子
    string xx = sr.ReadToEnd();
    string[] split = xx.Split(new char[] {'.','!','?', ';', ',', ':'});
 
    string content;
    for (int i = 0; i 
总结

到此这篇关于 C# 调用百度翻译 API 实现一个翻译功能的文章就介绍到这了。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计2158字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中