Comment : définir la culture et la culture de l'interface utilisateur pour la globalisation des Windows Forms
Mise à jour : novembre 2007
Les deux valeurs de culture d'une application Visual Basic ou Visual C# déterminent les ressources qui sont chargées pour une application et la manière dont les informations telles que les devises, les nombres et les dates sont formatées. La configuration de l'interface utilisateur détermine les ressources chargées et le paramètre de culture, les options de formatage. Une application recherchera les valeurs de culture d'abord dans les propriétés CurrentCulture et CurrentUICulture. Vous pouvez définir ces valeurs dans le code, comme illustré dans la procédure suivante.
La valeur par défaut de la propriété CurrentCulture correspond aux paramètres régionaux utilisateur du système d'exploitation qui sont définis dans le Panneau de configuration sous Options régionales. La valeur par défaut de la propriété CurrentUICulture est la langue de l'interface utilisateur du système d'exploitation, qui correspond à la langue de l'interface utilisateur de votre système d'exploitation. Sous Windows 2000 et Windows XP avec interface utilisateur multilingue (MUI), CurrentUICulture possède par défaut les paramètres de langue en cours de l'interface utilisateur.
Dans certains cas, il peut être utile de modifier la majeure partie de votre application en fonction des paramètres du système d'exploitation ou de culture de l'utilisateur, tout en conservant un nombre ou une date tel(le) quel(le). Vous pouvez utiliser des classes spécifiques à la culture qui formatent les informations selon la culture dite indifférente, qui est associée à l'anglais mais pas à une région particulière. Pour plus d'informations sur ces classes, consultez Mise en forme pour différentes cultures et System.Globalization. Pour plus d'informations sur la culture dite indifférente, consultez InvariantCulture. Pour plus d'informations sur les paramètres de culture possibles, consultez CultureInfo.
Pour définir les options de formatage d'une culture spécifique
Si vous souhaitez substituer les paramètres de l'utilisateur ou du système d'exploitation, définissez les propriétés CurrentCulture et CurrentUICulture.
En général, vous souhaitez spécifier une culture pour que l'interface utilisateur de l'application soit adaptée à cette culture. Vous devez donc définir une culture avant que la méthode InitializeComponent soit appelée.
' Put the Imports statements at the beginning of the code module Imports System.Threading Imports System.Globalization ' Put the following code before InitializeComponent() ' Sets the culture to French (France) Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR") ' Sets the UI culture to French (France) Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR")
// Put the using statements at the beginning of the code module using System.Threading; using System.Globalization; // Put the following code before InitializeComponent() // Sets the culture to French (France) Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR"); // Sets the UI culture to French (France) Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR");
Remarque : La valeur de culture doit toujours être une culture spécifique (telle que « fr-FR ») et non une culture neutre (telle que « fr »). Une culture neutre telle que « fr » est problématique, car elle peut s'appliquer à toutes les cultures francophones, alors que des monnaies différentes sont utilisées en France, en Belgique et au Québec.
Appelez les méthodes de formatage avec la culture dite indifférente pour toute chaîne qui doit apparaître inchangée quelle que soit la valeur de la propriété CurrentCulture.
Dim MyInt As Integer = 100 Dim MyString As String = MyInt.ToString("C", CultureInfo.InvariantCulture) MessageBox.Show(MyString)
int MyInt = 100; string MyString = MyInt.ToString("C", CultureInfo.InvariantCulture); MessageBox.Show(MyString);