使用WindowsAPICodePack实现翻译功能_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 使用WindowsAPICodePack实现翻译功能

使用WindowsAPICodePack实现翻译功能

 2014/5/7 3:09:30  小y  博客园  我要评论(0)
  • 摘要:仅限于以下几种语言间的翻译:在我的另一篇博文《图片批量压缩》中,有介绍WindowsAPICodePack库,该库是微软提供的一套基于Win7及以上版本操作系统的系统库,可以帮助我们完成一些代码很难完成的系统层面操作。本文就介绍其中的一个强大功能:语言的翻译转换功能。WindowsAPICodePack库下载地址:官方主页程序界面如下:获取所有翻译类别代码://获取所有翻译类别privateMappingService[]GetSpecifiedMappingServices
  • 标签:Windows API 功能 翻译 实现 使用 SAP

仅限于以下几种语言间的翻译:

                       

 

 

 

在我的另一篇博文《图片批量压缩》中,有介绍WindowsAPICodePack库,该库是微软提供的一套基于Win7及以上版本操作系统的系统库,可以帮助我们完成一些代码很难完成的系统层面操作。本文就介绍其中的一个强大功能:语言的翻译转换功能。WindowsAPICodePack库下载地址:官方主页

 

程序界面如下:

 

 

获取所有翻译类别代码:

class="brush:csharp;gutter:false;">//获取所有翻译类别
        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);
            }

  

解释:略。

 

下载:Demo   Code

发表评论
用户名: 匿名