Gewusst wie: Festlegen der Kultur und Benutzeroberflächenkultur für die Windows Forms-Lokalisierung
Aktualisiert: November 2007
Die beiden Kulturwerte einer Visual Basic-Anwendung oder einer Visual C#-Anwendung bestimmen, welche Ressourcen für die Anwendung geladen und wie Währungs-, Zahlen- und Datumsangaben formatiert werden. Die geladenen Ressourcen richten sich nach der benutzeroberflächenspezifischen Kultureinstellung und die Formatoptionen nach der Kultureinstellung. Eine Anwendung durchsucht zunächst die CurrentCulture-Eigenschaft und CurrentUICulture-Eigenschaft nach Kulturwerten. Sie können diese Werte in Code festlegen, wie in der folgenden Prozedur gezeigt.
Der Standardwert der CurrentCulture-Eigenschaft ist das Benutzergebietsschema des Betriebssystems, das in der Systemsteuerung unter Ländereinstellungen festgelegt wird. Der Standardwert der CurrentUICulture-Eigenschaft ist die Sprache der Benutzeroberfläche (UI) des Betriebssystems, d. h. die Sprache, die das Betriebssystem für die Benutzeroberfläche festlegt. Bei Windows 2000 und Windows XP MultiLanguage Edition entspricht der Standardwert von CurrentUICulture den aktuellen, vom Benutzer festgelegten Spracheinstellungen der Benutzeroberfläche.
In manchen Fällen muss eine Zahlen- oder Datumsangabe unverändert bleiben, während für die Anwendung ansonsten die Kultureinstellungen des Betriebssystems oder des Benutzers gelten. Mit kulturspezifischen Klassen können Sie diese Informationen mit der invarianten Kultur formatieren, die der englischen Sprache, jedoch keiner bestimmten Region zugeordnet wird. Weitere Informationen zu diesen Klassen finden Sie unter Formatieren für unterschiedliche Kulturen und System.Globalization. Weitere Informationen über die invariante Kultur finden Sie unter InvariantCulture. Informationen über mögliche Kultureinstellungen finden Sie unter CultureInfo.
So legen Sie einer spezifischen Kultur entsprechende Formatoptionen fest
Wenn Sie die Einstellungen des Benutzers oder Betriebssystems überschreiben möchten, legen Sie die CurrentCulture-Eigenschaft und CurrentUICulture-Eigenschaft fest.
Im Allgemeinen ist es sinnvoll, eine Kultur festzulegen, damit alle Komponenten der Benutzeroberfläche einer Anwendung ihren Konventionen entsprechen. Die Kultur muss demnach festgelegt werden, bevor die InitializeComponent-Methode aufgerufen wird.
' 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");
Hinweis: Der Kulturwert muss immer eine spezifische Kulturangabe sein (z. B. "fr-FR"), keine neutrale (z. B. "fr"). Eine neutrale Kulturangabe wie "fr" gilt nämlich für alle französischsprachigen Länder und Regionen, während in Frankreich, Belgien und Quebec unterschiedliche Währungen gelten.
Rufen Sie Formatierungsmethoden mit der invarianten Kultur bei Zeichenfolgen auf, die, unabhängig vom Wert der CurrentCulture-Eigenschaft, unverändert bleiben sollen.
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);