[C#]使用 Bing Sharp 來做 Bing 翻譯

  • 16657
  • 0
  • 2010-08-02

使用 Bing Sharp 來做 Bing 翻譯

 

1. 簡介

在之前,曾發過此篇文章,[Windows Mobile]修練筆記(9) - 在智慧型裝置專案、Windows Form 應用程式與 Widget 使用 Bing API 達成 Bing 圖片搜尋,文章中,我們必須對 Bing API 所回傳的 XML、JSON 或 Soap 做處理,而 Bing Sharp 的出現,就省去了這道手續。

Bing Sharp 是一個包含 Bing API 2.x XML 請求的 C# API,提供了與 Bing API 互動的物件模型,使用了 Bing Sharp,則不必去處理 XML、JSON、Soap。

*註 : Bing Sharp 作者為 Joseph Guadagno,是 Micosoft Visual C# MVP

 

2. 使用 Bing Sharp

(1) 下載

下載網址

image  

 

(2) 加入參考

imageimage

在程式中 using


using Bing;

 

(3) 撰寫程式

要如何使用 Bing Sharp 來做 翻譯,作者有提供 help 檔案可以下載。而要使用 Bing,就必須要有 AppID,申請的方式請參考 [Windows Mobile]修練筆記(9) - 在智慧型裝置專案、Windows Form 應用程式與 Widget 使用 Bing API 達成 Bing 圖片搜尋

image

 

以下是程式碼


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Bing;

namespace WindowsFormsBing
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            AddItem(cboFrom);
            AddItem(cboTo);
        }

        string AppId = "B692A148D1624C4E3C1248C8E5DDC209E524D2C4";

        private void btnTranslate_Click(object sender, EventArgs e)
        {
            string query = txtQuery.Text.Trim();
            this.txtResult.Text = String.Empty;

            if (string.IsNullOrEmpty(query))
            {
                MessageBox.Show("請輸入要翻譯的文字");
                return;
            }

            if (this.cboFrom.SelectedIndex < 0)
            {
                MessageBox.Show("請選擇來源語系");
                return;
            }

            if (this.cboTo.SelectedIndex < 0)
            {
                MessageBox.Show("請選擇目的語系");
                return;
            }

            SearchRequest searchRequest = new SearchRequest() { AppId = AppId, Query = query, Market = "en-US" };

            TranslationRequest translationRequest = new TranslationRequest();  // 宣告 TranslationRequest 並實例化
            translationRequest.SourceLanguage = cboFrom.Text.ToString();  // 來源語系
            translationRequest.TargetLanguage = cboTo.Text.ToString();  // 目的語系

            TranslationResponse response = API.Translation(searchRequest, translationRequest);

            if (response.TranslationResults.Count > 0)  // 翻譯回傳值大於0筆時
            {
                txtResult.Text = response.TranslationResults[0].TranslatedTerm;
            }
        }

        public void AddItem(ComboBox cbo)
        {
            cbo.Items.Add("Ar");    // Arabic
            cbo.Items.Add("zh-CHS");// Simplified Chinese
            cbo.Items.Add("zh-CHT");// Traditional Chinese
            cbo.Items.Add("Nl");    // Dutch
            cbo.Items.Add("En");    // English
            cbo.Items.Add("Fr");    // French
            cbo.Items.Add("De");    // German
            cbo.Items.Add("It");    // Italian
            cbo.Items.Add("Ja");    // Japanese
            cbo.Items.Add("Ko");    // Korean
            cbo.Items.Add("Pl");    // Polish
            cbo.Items.Add("Pt");    // Portuguese
            cbo.Items.Add("Ru");    // Russian
            cbo.Items.Add("Es");    //"Spanish
        }
    }
}

 

(4) 執行結果

image

 

3. 檔案下載

WindowsFormsBing.rar

 

4. 附註

會使用 Bing Sharp 的原因是因為 Plurk 網友詢問這是微軟新出的程式語言嗎? 而且看到大陸網站上有關於 Bing Sharp 的介紹,不過總覺得這應該不是微軟官方的東西,反正好用的話,大家就會使用了