使用WindowsAPICodePack实现翻译功能
仅限于以下几种语言间的翻译:
在我的另一篇博文《图片批量压缩》中,有介绍WindowsAPICodePack库,该库是微软提供的一套基于Win7及以上版本操作系统的系统库,可以帮助我们完成一些代码很难完成的系统层面操作。本文就介绍其中的一个强大功能:语言的翻译转换功能。WindowsAPICodePack库下载地址:官方主页
程序界面如下:
获取所有翻译类别代码:
//获取所有翻译类别 private MappingService[] GetSpecifiedMappingServices( string CategoryName) { MappingService[] transliterationServices = null ; try { MappingEnumOptions enumOptions = new MappingEnumOptions() { Category = CategoryName }; transliterationServices = MappingService.GetServices(enumOptions); } catch (LinguisticException exc) { MessageBox.Show(exc.Message); } return transliterationServices; } |
解释:前面贴出的可以翻译的几种语言,是系统给出的,并不是博主创造的,上面的代码就是从系统中获取所有支持的语言翻译功能。
翻译功能代码如下:
private string LanguageConverter(Guid serviceGuid, string sourceContent) { string transliterated = null ; if ((sourceContent != null ) && (sourceContent.Length > 0)) { try { MappingService mapService = new MappingService(serviceGuid); using (MappingPropertyBag bag = mapService.RecognizeText(sourceContent, null )) { transliterated = bag.GetResultRanges()[0].FormatData( new StringFormatter()); } } catch (LinguisticException exc) { MessageBox.Show(exc.Message); } } return transliterated; } |
解释:通过serviceGuid初始化不同的翻译器,serviceGuid就是下拉列表中选择的语言的guid。
调用翻译功能的代码:
try { guidService = ((DataItem)comboBox1.SelectedItem).guid; string result = LanguageConverter(guidService.GetValueOrDefault(), txtSource.Text); if ((result != null ) && (result.Length > 0)) { txtResult.Text = result; } } catch (Exception ex) { MessageBox.Show(ex.Message); } |
解释:略。
-----------------------------------------------------------------
分类:
[08] Windows技术
, [23] 我做的小程序
标签:
WindowsAPICodePack
, 翻译
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
2009-05-06 最近遇到的一些问题及发现
2008-05-06 mysql5.1事件调度器