文章出處

僅限于以下幾種語言間的翻譯:

                       

 

 

 

在我的另一篇博文《圖片批量壓縮》中,有介紹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);
            }

  

解釋:略。

 

下載:Demo   Code


文章列表


不含病毒。www.avast.com
全站熱搜
創作者介紹
創作者 大師兄 的頭像
大師兄

IT工程師數位筆記本

大師兄 發表在 痞客邦 留言(0) 人氣()