2012年7月13日 星期五

繁簡轉換 好用的類別庫 - Microsoft Visual Studio International Pack


由於最近案子的需求,需要進行繁簡轉換這個棘手的問題,也因此意外的發現了個好用的類別庫:Microsoft Visual Studio International Pack,這是一套國產的類別庫,用途是幫助 .NET 程式開發人員建立全球化的應用程式,而其中提供了一組好用的類別庫就是「繁簡轉換」功能的「中文繁簡轉換類別庫」拉。

使用方法也很簡單,只需在使用到的專案裡加入參考ChineseConverter.dll,再引用其命名空間即可。
DLL參考位置(預設安裝的情況下): C:\Program Files\Microsoft Visual Studio International Pack\Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool\ChineseConverter.dll
引用命名空間: using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;

為了快速顯示效果,寫了個小程式來展示一下: 程式說明:透過 [轉繁體] 、[轉簡體] 兩顆按鈕來轉換已輸入的字串成繁體字或簡體字。

程式快照:
程式畫面:轉簡體:轉繁體:以下為原始碼:
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;

namespace ChineseConvert
{
    public partial class FormMain : Form
    {
        public FormMain()
        {
            InitializeComponent();
        }

        //預先設定來源字串
        private void FormMain_Load(object sender, EventArgs e)
        {
            this.txbSourdeString.Text = "資料來源";
        }

        //轉繁體按鈕
        private void btnCT_Click(object sender, EventArgs e)
        {
            this.txbConvertString.Text = Convert(this.txbSourdeString.Text, "Big5");
        }

        //轉簡體按鈕
        private void btnCS_Click(object sender, EventArgs e)
        {
            this.txbConvertString.Text = Convert(this.txbSourdeString.Text, "GB2312");
        }

        //繁簡轉換Funtion,參數 Language 為 Big5 則轉繁體、GB2312 則轉簡體,其他狀況則輸出原字串
        private string Convert(string SourceString, string Language)
        {
            string newString = string.Empty;
            switch (Language)
            {
                case "Big5":
                    newString= ChineseConverter.Convert(SourceString, ChineseConversionDirection.SimplifiedToTraditional);
                    break;
                case "GB2312":
                    newString= ChineseConverter.Convert(SourceString, ChineseConversionDirection.TraditionalToSimplified);
                    break;
                default:
                    newString = SourceString;
                    break;
            }
            return newString;
        }
    }
}

沒有留言:

張貼留言