C#調(diào)用百度翻譯API實(shí)現(xiàn)一個(gè)翻譯功能
前言
雖然百度翻譯相對(duì)于谷歌翻譯在準(zhǔn)確性方面還有很大的提升空間,但網(wǎng)絡(luò)的現(xiàn)實(shí)情況及百度翻譯接口的免費(fèi)易用性方面讓我們選擇百度翻譯接口。下面來(lái)一起看看詳細(xì)的步驟吧
方法如下
appId 和 passWord 需要到百度翻譯開放平臺(tái)申請(qǐng)
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<PostResult>(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返回的值類型組成的一個(gè)自定義類,類里的每個(gè)名字和百度翻譯API返回值里名字要一致。
升級(jí)功能:
先將要翻譯的文本寫入TXT文檔,存入主目錄下的File目錄下,可以用以下代碼讀取后翻譯,用以解決每次翻譯,百度翻譯有句子長(zhǎng)短限制的問(wèn)題。TBTxtName.txt為要翻譯的文件名,要替換的符號(hào)以及語(yǔ)言可自己選擇。
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); //去除符號(hào)重新定義句子 string xx = sr.ReadToEnd(); string[] split = xx.Split(new char[] { '.','!','?', ';', ',', ':' }); string content; for (int i = 0; i < split.Length; i++) { content = split[i]; if (content != null & content != "" & content != " " & content != "\n" & content != "\t" & content != "\r") { string line = TranslationFunction.Translate(content); m_SW.WriteLine(line); //m_SW.WriteLine(content); } } m_SW.Dispose(); m_SW.Close(); }
總結(jié)
到此這篇關(guān)于C#調(diào)用百度翻譯API實(shí)現(xiàn)一個(gè)翻譯功能的文章就介紹到這了,更多相關(guān)C#調(diào)用百度翻譯API內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談c#表達(dá)式樹Expression簡(jiǎn)單類型比較demo
下面小編就為大家?guī)?lái)一篇淺談c#表達(dá)式樹Expression簡(jiǎn)單類型比較demo。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02深入淺析C#?11?對(duì)?ref?和?struct?的改進(jìn)
這篇文章主要介紹了C#?11?對(duì)?ref?和?struct?的改進(jìn),有了這些基礎(chǔ)設(shè)施,開發(fā)者們將能輕松使用安全的方式來(lái)編寫沒(méi)有任何堆內(nèi)存開銷的高性能代碼,需要的朋友可以參考下2022-04-04基于C#實(shí)現(xiàn)簡(jiǎn)單的二維碼和條形碼的生成工具
這篇文章主要為大家詳細(xì)介紹了如何基于C#實(shí)現(xiàn)簡(jiǎn)單的二維碼和條形碼工具,用于二維碼條形碼的生成與識(shí)別,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12描述C#多線程中l(wèi)ock關(guān)鍵字的使用分析
本篇文章是對(duì)C#多線程中l(wèi)ock關(guān)鍵字的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06