?一款自用的翻譯小工具,開源了
TranslationTool
作者:WPFDevelopersOrg - 唐宋元明清|驚鏵
原文鏈接:https://github.com/Kybs0/TranslationTool
此項目使用
WPF MVVM
開發。框架使用大于等于
.NET461
。Visual Studio 2019
。最初是支持以下:
Google
有道
金山
百度
目前支持
有道
、百度
翻譯 其他接口均無法訪問。項目中使用
WebRequest
進行http
翻譯請求,Unicode轉字符串
,MD5加密
,ScriptControl執行JS
,winmm
播放音頻,SpeechSynthesizer
文本轉語音,下載音頻文件
等。更多代碼請下載源碼[1],歡迎給項目一個
Star
。各種翻譯
WebAPI
。實體類。
幫助類。
界面。
1)調用API部分代碼如下:
using?System;
using?System.Collections.Generic;
using?System.IO;
using?System.Net;
using?System.Text;
using?System.Threading.Tasks;
using?Newtonsoft.Json;
using?Translation.Api;
using?Translation.WebApi.WebRequestHelper;namespace?Translation.WebApi.YouDaoApi
{///?<summary>///?官方API翻譯///?</summary>public?class?YouDaoUnOfficialWordApiService?:?WebRequestBase{public?static?async?Task<EnglishWordTranslationData>?GetWordsAsync(string?queryText){if?(string.IsNullOrWhiteSpace(queryText)){return?new?EnglishWordTranslationData();}try{var?requestUrl?=?GetRequestUrl(queryText.Trim());var?result?=?await?RequestUrlAsync(requestUrl);var?youDaoResponse?=?JsonConvert.DeserializeObject<IntergateYouDaoDataResponse>(result);var?translationData?=?new?EnglishWordTranslationData{Word?=?youDaoResponse.Word????string.Empty,DetailJson?=?result,UkPronounce?=?youDaoResponse.EnglishToChineseData?.GetUkPronounce()????new?PronounceInfo(),UsPronounce?=?youDaoResponse.EnglishToChineseData?.GetUsPronounce()????new?PronounceInfo(),Translations?=?youDaoResponse.EnglishToChineseData?.GetTranslation()????new?List<SematicInfo>(),Phrases?=?youDaoResponse.PhraseDictionary?.GetPhrases()????new?List<PhraseInfo>(),Synonyms?=?youDaoResponse.SynonymDictionary?.GetSynonymWords()????new?List<SynonymInfo>(),Cognates?=?youDaoResponse.CognateWordDictionary?.GetCognateWords()????new?List<CognateInfo>(),Sentences?=?youDaoResponse.CollinsDictionary?.GetCollinsSentences()????new?List<SentenceInfo>(),};return?translationData;}catch?(Exception?e){return?new?EnglishWordTranslationData();}}private?static?string?GetRequestUrl(string?queryWord){var?dictString?=?GetDictString();var?requestUrl?=?string.Format("http://dict.youdao.com/jsonapi?xmlVersion=5.1&jsonversion=2&client=mobile&"?+"q={0}&dicts={1}&network=5g",?queryWord,?dictString);return?requestUrl;}///?<summary>///?獲取字典字符串///?需要查詢哪些字典。目前已知?///?</summary>///?<returns></returns>private?static?string?GetDictString(){var?dictionaryQueryModel?=?new?DictionaryQueryModel(){Dictionaries?=?new?List<List<string>>(){new?List<string>(){"ec",//"ec21","phrs","syno","rel_word","collins"},},};var?requestString?=?WebRequestTransformHelper.GetRequestString(dictionaryQueryModel);return?requestString;}}
}
?鳴謝 - 唐宋元明清

參考資料
[1]
源碼: https://github.com/Kybs0/TranslationTool