測試當地語系化的應用程式
現在,您終於可以開始測試已當地語系化的應用程式。測試當地語系化時最常用的方法,需要為每個要測試的文化特性,準備一台執行當地語系化版作業系統的電腦。這可能需要很多台電腦,視應用程式的發佈範圍而定。另一個方法是安裝 Windows 2000 多語系使用者介面 (Multilingual User Interface,MUI) 版本,它內建支援多種語言,而且可以重新設定電腦,不必安裝新的作業系統。雖然這種方法可能適用於某些開發案例,但是 MUI 版 Windows 2000 的發佈並不廣泛。
大部分開發人員會選擇變更現用執行緒的 CurrentThread.CurrentUICulture 屬性,來模擬不同的文化特性。這個教學課程前面介紹的幾個範例中的命令列引數,影響了載入的資源。這種程式碼是很直接的。首先必須傳入所需文化特性標記,這可以用程式碼來執行,請參閱 WorldCalc.cs 檔案中的下列 Visual C# 程式碼。
public static void Main(string[] args) {
string strCulture = "";
if (args.Length == 1) {
strCulture = args[0];
}
Application.Run(new VersioningDemo(strCulture));
}
接著,類別建構函式使用文化特性標記來建立 CultureInfo,並且將它指定給目前執行的執行緒,請參閱下列程式碼。
public VersioningDemo(string culture) {
if (culture != "")
try {
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
}
catch (ArgumentException e){
MessageBox.Show(this, e.Message, "Bad command-line argument");
}
InitializeComponent();
}
WorldCalc.vb 檔案中的同等 Visual Basic 程式碼,稍有不同。Visual Basic 不允許將參數傳給 Main,因而必須改用 GetCommandLineArgs 方法,請參閱下列程式碼。
<System.STAThreadAttribute()> _
Public Shared Sub Main()
Dim args() As String = System.Environment.GetCommandLineArgs()
Dim strCulture As String = ""
If args.Length = 2 Then
strCulture = args(1)
End If
Application.Run(New VersioningDemo(strCulture))
End Sub 'Main
下列程式碼顯示出對應的 Visual Basic 類別建構函式 New,更接近同等的 Visual C#。
Public Sub New(culture As String)
If culture <> "" Then
try
Thread.CurrentThread.CurrentUICulture = New CultureInfo(culture)
catch e as ArgumentException
MessageBox.Show(Me, e.Message, "Bad command-line argument")
end try
End If
InitializeComponent()
End Sub 'New
這個方法能讓開發人員測試當地語系化的大部分資源,不必另外設定多台電腦。