Partager via


Test d'applications localisées

Vous êtes enfin prêt à tester l'application localisée. La méthode la plus courante pour le test de la localisation requiert un ordinateur exécutant une version localisée du système d'exploitation pour chacune des cultures à tester. Évidemment, ceci peut nécessiter un grand nombre d'ordinateurs, en fonction de la portée de la distribution de l'application. Une autre méthode implique l'installation de la version multilingue de l'interface utilisateur (MUI, Multilingual User Interface) de Windows 2000, qui offre une prise en charge intégrée de plusieurs langues et permet de reconfigurer un ordinateur sans installer de nouveau système d'exploitation. Bien que cette approche soit valable pour certains scénarios de développement, la version de l'interface MUI de Windows 2000 n'est pas largement distribuée.

La plupart des développeurs choisiront de simuler une culture différente en modifiant la propriété CurrentThread.CurrentUICulture du thread en cours d'exécution. Ce didacticiel vous a déjà présenté plusieurs exemples dans lesquels les arguments de ligne de commande affectaient les ressources chargées. Le code permettant de réaliser cette action est simple. Il est d'abord nécessaire de passer la balise de culture requise. Ceci peut être effectué avec du code tel que le code Visual C# suivant du fichier WorldCalc.cs.

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

Le constructeur de classe crée ensuite CultureInfo à l'aide de la balise de culture, puis l'assigne au thread en cours d'exécution, comme le montre le code suivant.

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

Le code Visual Basic équivalent, du fichier WorldCalc.vb, est légèrement différent. Visual Basic ne permet pas de passer des paramètres à Main. Il est donc nécessaire d'utiliser, à la place, la méthode GetCommandLineArgs, comme le montre le code suivant.

<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

Le code suivant montre que le constructeur de classe Visual Basic correspondant, New, est bien plus proche de l'équivalent 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

Cette approche permet aux développeurs de tester la plupart des ressources pour la localisation sans avoir à configurer plusieurs ordinateurs.