转自:http://blog.kkbruce.net/2009/11/microsoft-visual-studio-international.html#.UqFslfQ9KWY注意,光装2.0是没有chineseconverter.dll的,如果只是需要繁简转换,可以直接到网上下载相关dll,在项目里引用
先看微軟的介紹:
Visual Studio International Feature Pack 2.0 擴充了先前 1.0 版的功能, 它提供了一組控制項和類別庫以幫助.NET開發人員建立符合國際化需求的應用程式。
跟我們之前介紹使用資源檔的方式不同,它提供的是控制項(Controls)和類別庫(Class Library)來幫助.NET開發人員處理各種亞洲語系上的的文字、字串處理工作。
而Visual Studio International Feature Pack 2.0是「擴充」之前1.0的功能,所以本身不含1.0的功能,如果想使用1.0提供的功能,可下載1.0進行安裝。
Microsoft Visual Studio International Pack 1.0 SR1
Microsoft Visual Studio International Feature Pack 2.0
如果你的網頁需要處理多國語言的問題,尤其是亞洲這個雙字元文字的問題,可一定要好好玩玩這個佛心級工具。想想,以前光一個「繁體轉簡體」的問題,就不知要花多少力,現在簡單幾行程式就可以完成了,.NET Framework是的越來越強大,真的是越來越愛了。
在Visual Studio International Pack 1.0 SR1的版本裡,我比較有興趣的是,CHTCHSConv.msi及EANumFormat.msi,
CHTCHSConv.msi
Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool (中文繁簡轉換類別庫 及Visual Studio Add-In Tool工具):提供了一組類別庫以幫助程式開發人員在應用程式中轉換將中文繁體至中文簡體(或是中文簡體至中文繁體). 此轉換機制使用的內建於 Microsoft office 2007 的程式, 它的以進行詞對詞的轉換, 讓轉換的品質更好. 若使用者的系統中沒有安裝Microsoft office 2007 , 此類別庫將使用傳統的字對字轉換. 除此之外, 此元件也包括了一個 Visual Studio Add-In Tool 工具可以讓使用都直接轉換存在於資源檔中的中文字串.
安裝後,將「C:\Program Files\Microsoft Visual Studio International Pack\Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool」之下的「ChineseConverter.dll」參考或複製到「Bin」目錄之下即可。
實作ChineseConverter
TCtoSC.aspx
03 |
"tbxTCtoSC" runat= "server" >
|
04 |
"btnTCtoSC" runat= "server" text= "繁體轉簡體" >
|
05 |
"lblTCtoSC" runat= "server" >
|
06 |
"tbxSCtoTC" runat= "server" >
|
07 |
"btnSCtoTC" runat= "server" text= "簡體轉繁體" >
|
08 |
"lblSCtoTC" runat= "server" >
|
TCtoSC.aspx.vb
02 |
Imports Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter |
03 |
Partial Class Test_TCtoSC |
04 |
Inherits System.Web.UI.Page |
06 |
Protected Sub btnTCtoSC_Click( ByVal sender As Object , ByVal e As System.EventArgs) Handles btnTCtoSC.Click |
07 |
If Me .tbxTCtoSC.Text.Length > 0 Then |
08 |
Dim TWString As String = Me .tbxTCtoSC.Text |
13 |
Me .lblTCtoSC.Text = ChineseConverter.Convert(TWString, ChineseConversionDirection.TraditionalToSimplified) |
17 |
Protected Sub btnSCtoTC_Click( ByVal sender As Object , ByVal e As System.EventArgs) Handles btnSCtoTC.Click |
18 |
If Me .tbxSCtoTC.Text.Length > 0 Then |
19 |
Dim SCString As String = Me .tbxSCtoTC.Text |
24 |
Me .lblSCtoTC.Text = ChineseConverter.Convert(SCString, ChineseConversionDirection.SimplifiedToTraditional) |
以上這支程式還可以用我們之前介紹使用Button裡的CommandName及CommandArgument來改寫。
EANumFormat.msi
East Asia Numeric Formatting Library (亞洲語系的數值字串格式化類別庫):East Asia Numeric Formatting Library 提供了一組類別庫以幫助程式開發人員將數值資料格式化成亞洲語系的數值字串. 支援的亞洲語系包括了繁體中文, 簡體中文, 日文以及韓文.
將「C:\Program Files\Microsoft Visual Studio International Pack\East Asia Numeric Formatting Library」目錄之下的「EastAsiaNumericFormatter.dll」參考或複製到「Bin」之下。
實作EastAsiaNumericFormatter
EastAsiaNumericFormatting.aspx
3 |
"tbxNumber" runat= "server" tooltip= "請輸入整數,例如:12345" >
|
4 |
"btnNumToChinese" runat= "server" text= "數字轉中文" >
|
5 |
"lblNumtoChinese" runat= "server" >
|
6 |
"lblNumtoJP" runat= "server" >
|
EastAsiaNumericFormatting.aspx.vb
02 |
Imports Microsoft.International.Formatters |
04 |
Imports System.Globalization |
05 |
Partial Class Test_EastAsiaNumericFormatting |
06 |
Inherits System.Web.UI.Page |
08 |
Protected Sub btnTCtoNum_Click( ByVal sender As Object , ByVal e As System.EventArgs) Handles btnNumToChinese.Click |
09 |
If Me .tbxNumber.Text.Length > 0 Then |
10 |
Dim ChangeNumber As Integer = Convert.ToInt32( Me .tbxNumber.Text) |
13 |
Me .lblNumtoChinese.Text = String .Format( New EastAsiaNumericFormatter(), "數字的中文是:{0:L}" , ChangeNumber) |
17 |
Me .lblNumtoJP.Text = String .Format( "數字的日文是:{0}" , EastAsiaNumericFormatter.FormatWithCulture( "L" , ChangeNumber, Nothing , New CultureInfo( "ja" ))) |
19 |
Me .lblNumtoChinese.Text = "錯誤:" & ex.Message |
在Microsoft Visual Studio International Feature Pack 2.0的NumericConversion,新增對阿拉伯文的支援,安裝到可到「C:\Program Files\Microsoft Visual Studio International Feature Pack 2.0\NumericConversion」之下將「InternationalNumericFormatter.dll」參考或複製到「Bin」目錄之下,新增「InternationalNumericFormatter」類別,可進行對阿拉伯數字字串的設定。
舉個例子,以下是我的想法,我還沒有實作,但應該可行。
使用WebRequest類別將網頁資料讀進來,然後透過上述方法去轉換內容,然後再輸出,看你是要繁轉簡或簡轉繁,應該都不成問題才是。