Test di applicazioni localizzate

È ora possibile eseguire il test dell'applicazione localizzata. Il test di localizzazione generalmente richiede un computer su cui sia in esecuzione la versione localizzata del sistema operativo per ogni lingua di cui è necessario eseguire il test. Questo metodo può richiedere quindi l'utilizzo di molti computer, a seconda dell'ambito di distribuzione previsto per l'applicazione. Un altro metodo prevede l'installazione della versione Multilingual User Interface (MUI) di Windows 2000, che offre un supporto incorporato per più lingue e consente di riconfigurare un computer senza la necessità di installare un nuovo sistema operativo. Sebbene questo approccio possa rivelarsi efficace in alcuni scenari di sviluppo, la versione MUI di Windows 2000 non ha ancora avuto un'ampia distribuzione.

Molti sviluppatori sceglieranno di simulare una lingua differente modificando la proprietà CurrentThread.CurrentUICulture dei thread al momento in esecuzione. In questa esercitazione sono stati già illustrati degli esempi in cui gli argomenti della riga di comando influenzavano la scelta delle risorse da caricare. Il codice da utilizzare a tale scopo è molto semplice. Innanzitutto, è necessario passare il tag della lingua richiesta. Questa operazione può essere effettuata tramite codice, ad esempio quello di Visual C# contenuto nel file WorldCalc.cs.

public static void Main(string[] args) {
   string strCulture = "";
   if (args.Length == 1) {
         strCulture = args[0];
   }
   Application.Run(new VersioningDemo(strCulture));
} 

Il costruttore di classi crea quindi una CultureInfo mediante il tag della lingua e la assegna al thread al momento in esecuzione, come viene illustrato nel codice riportato di seguito.

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();
}

Il codice equivalente di Visual Basic, tratto dal file WorldCalc.vb, è leggermente diverso. Poiché in Visual Basic non è consentito il passaggio di parametri a Main, è necessario invece utilizzare il metodo GetCommandLineArgs, come viene illustrato nel codice riportato di seguito.

<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

Nel codice che segue viene dimostrato che il costruttore di classi di Visual Basic corrispondente, New, è molto più simile all'equivalente di 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

Questo approccio consente agli sviluppatori di eseguire il test di molte risorse per la localizzazione senza la necessità di configurare più computer.