Поделиться через


Практическое руководство. Установка значений Culture и UICulture для глобализации форм Windows Forms

Обновлен: Ноябрь 2007

Два значения для языка и региональных параметров для приложений Visual Basic и Visual C# определяют, какие ресурсы загружаются для приложения и как форматируются данные о денежных суммах, численные данные, даты и т. п. Загружаемые ресурсы зависят от значения параметра "UICulture", а параметры форматирования определяются значением параметра "Culture". Сначала приложение ищет значения для языка и региональных параметров в свойствах CurrentCulture и CurrentUICulture. Можно задать эти значения коде, как показано в следующей процедуре.

По умолчанию значением свойства CurrentCulture является системный параметр пользовательского языка, т. е. языка, который задается в разделе Региональные стандарты панели управления. По умолчанию значением свойства CurrentUICulture является язык пользовательского интерфейса операционной системы. В Windows 2000 и Windows XP MultiLanguage Edition значением параметра CurrentUICulture по умолчанию является язык пользовательского интерфейса для текущего пользователя.

В некоторых случаях разработчику может потребоваться, чтобы большая часть приложения изменялась в зависимости от языка и региональных параметров ОС или пользователя, но при этом определенное число или дата не изменялись. Можно поручить зависящим от языка и региональных параметров классам форматирование данных для инвариантной культуры, которая сопоставлена английскому языку без указания конкретного региона. Дополнительные сведения об этих классах содержатся в разделах Форматирование для различных языков и региональных параметров и System.Globalization. Дополнительные сведения об инвариантном языке и региональных параметрах см. в разделе InvariantCulture. Дополнительные сведения о возможных настройках языка и региональных параметров см. в разделе CultureInfo.

Установка параметров форматирования для определенного языка и региональных параметров

  1. Для переопределения параметров пользователя и операционной системы служат свойства CurrentCulture и CurrentUICulture.

    Обычно можно указать язык и региональные параметры так, чтобы каждый компонент пользовательского интерфейса приложения соответствовал данному языку и региональным параметрам. Поэтому необходимо задать язык и региональные параметры до вызова метода InitializeComponent.

    ' 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");
    
    b28bx3bh.alert_note(ru-ru,VS.90).gifПримечание.

    Значение языка и региональных параметров должно всегда соответствовать конкретному языку и региональным параметрам (например, fr-FR), а не нейтральному (как например, fr). Причина в том, что нейтральное значение языка и региональных параметров (например, fr) может применяться ко всем регионам, в которых используется французский язык, в то время как, во Франции, Бельгии и Канаде используются разные денежные единицы.

  2. Вызовите методы форматирования для инвариантного языка и региональных параметров для всех строк, которые должны остаться неизменными независимо от значения 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);
    

См. также

Ссылки

CurrentCulture

CurrentUICulture

CultureInfo

Другие ресурсы

Глобализация приложений

Глобализация и локализация приложений

Глобализация Windows Forms