一款自用的翻译小工具,开源了
2023-06-13 09:16:26 时间
一款自用的翻译小工具,开源了
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
相关文章
- Navicat Premium 15 破解激活工具及安装教程(永久激活亲测可用)
- java加壳工具_加壳工具 – virbox加密空间站 – OSCHINA – 中文开源技术交流社区
- 干掉 PowerDesigner!这款国人开源的数据库设计工具真香
- 推荐5款开源报表工具下载_开源报表系统
- Qt编写GIF录屏工具(开源)「建议收藏」
- 10K+ Star!堪称开发者瑞士军刀的开源工具,YYDS!
- FSNotes for Mac(文本编辑工具)中文版
- D4TA-HUNTER:一款针对Kali的开源网络情报GUI工具
- 开源工具SmartSQL一款方便、快捷的数据库文档查询、生成工具摸鱼神器
- Nettacker:一款集渗透测试、开源漏洞扫描和漏洞管理于一身的自动化工具
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 远程调用 目标进程中 libc.so 动态库中的 mmap 函数 三 | 等待远程函数执行完毕 | 寄存器获取返回值 )
- sigurlfind3r:一款功能强大的被动网络侦察工具
- 开源Redis可视化客户端工具,用过的人都说好看又好用!
- etlpy: 并行爬虫和数据清洗工具(开源)详解大数据
- 使用开源工具进行 Linux 内存取证
- Google、IBM和Lyft开源其大型微服务系统管理工具Istio
- Etcher是一款开源的快速刻录软件,用它可以快速制作U盘镜像工具,制作启动盘。
- GIMP 是一款开源免费的跨平台图像编辑处理工具,Linux平台下绝对好用的软件!
- 使用cmd工具倒入MySQL文件夹(cmd倒mysql文件夹)
- Calibre 5.25 发布,功能强大的开源电子书工具
- 你的站点抗压么?推荐一款超方便的开源压测工具