CultureAndRegionInfoBuilder Класс

Определение

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

public ref class CultureAndRegionInfoBuilder sealed
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class CultureAndRegionInfoBuilder
[<System.Runtime.InteropServices.ComVisible(false)>]
type CultureAndRegionInfoBuilder = class
Public NotInheritable Class CultureAndRegionInfoBuilder
Наследование
CultureAndRegionInfoBuilder
Атрибуты

Примеры

В следующем примере определяется пользовательский язык ru-US, представляющий русский язык в США. В этом примере определяется пользовательский язык и региональные параметры путем загрузки параметров из российского объекта (Россия) CultureInfo и объекта США RegionInfo , а затем задает ряд CultureAndRegionInfoBuilder свойств. В этом примере регистрируется пользовательский язык и региональные параметры, а затем создается его экземпляр и делает его текущим языком и региональными параметрами.

using System;
using System.Globalization;
using System.Threading;

public class Example
{
   public static void Main()
   {
      // Create a custom culture for ru-US.
      CultureAndRegionInfoBuilder car1 = new CultureAndRegionInfoBuilder("ru-US",
                                             CultureAndRegionModifiers.None);
      car1.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("ru-RU"));
      car1.LoadDataFromRegionInfo(new RegionInfo("en-US"));

      car1.CultureEnglishName = "Russian (United States)";
      car1.CultureNativeName = "русский (США)";
      car1.CurrencyNativeName = "Доллар (США)";
      car1.RegionNativeName = "США";

      // Register the culture.
      try {
         car1.Register();
      }
      catch (InvalidOperationException) {
         // Swallow the exception: the culture already is registered.
      }

      // Use the custom culture.
      CultureInfo ci = CultureInfo.CreateSpecificCulture("ru-US");
      Thread.CurrentThread.CurrentCulture = ci;
      Console.WriteLine("Current Culture: {0}",
                        Thread.CurrentThread.CurrentCulture.Name);
      Console.WriteLine("Writing System: {0}",
                        Thread.CurrentThread.CurrentCulture.TextInfo);
   }
}
// The example displays the following output:
//     Current Culture: ru-US
//     Writing System: TextInfo - ru-US
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      ' Create a custom culture for ru-US.
      Dim car1 As New CultureAndRegionInfoBuilder("ru-US", CultureAndRegionModifiers.None)
      car1.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("ru-RU"))
      car1.LoadDataFromRegionInfo(New RegionInfo("en-US"))
      
      car1.CultureEnglishName = "Russian (United States)"
      car1.CultureNativeName = "русский (США)"
      car1.CurrencyNativeName = "Доллар (США)"
      car1.RegionNativeName = "США"

      ' Register the culture.
      Try
         car1.Register()
      Catch e As InvalidOperationException
         ' Swallow the exception: the culture already is registered.
      End Try
      
      ' Use the custom culture.
      Dim ci As CultureInfo = CultureInfo.CreateSpecificCulture("ru-US")
      Thread.CurrentThread.CurrentCulture = ci
      Console.WriteLine("Current Culture: {0}", 
                        Thread.CurrentThread.CurrentCulture.Name)
      Console.WriteLine("Writing System: {0}", 
                        Thread.CurrentThread.CurrentCulture.TextInfo)
   End Sub
End Module
' The example displays the following output:
'     Current Culture: ru-US
'     Writing System: TextInfo - ru-US

Комментарии

Класс CultureInfo содержит сведения, относящиеся к языку и региональным параметрам, такие как связанный язык, сублангуаж, страна или регион, календарь и культурные соглашения. Этот класс также предоставляет экземпляры, зависящие от языка и региональных параметров, NumberFormatInfoCompareInfoи TextInfo классыDateTimeFormatInfo, необходимые для операций, относящихся к языку и региональным параметрам, таких как регистр, форматирование и анализ дат и чисел, а также сравнение строк.

По умолчанию платформа .NET Framework поддерживает CultureInfo объекты, представляющие предопределенный набор языков и региональных параметров. Список этих языков и региональных параметров, доступных в системах Windows, см. в столбце тега языка в списке имен языков и регионов, поддерживаемых Windows. Теги языков указаны в соответствии со стандартом BCP 47. Этот CultureAndRegionInfoBuilder класс позволяет создать пользовательский язык и региональные параметры, которые являются совершенно новыми или переопределяют предопределенный язык и региональные параметры. При установке и регистрации пользовательского языка и региональных параметров на определенном компьютере он становится неотличимым от предопределенных CultureInfo объектов и может быть создан и использоваться так же, как и эти объекты.

Важно!

Обратите внимание, что CultureAndRegionInfoBuilder класс находится в сборке с именем sysglobl.dll. Для успешной компиляции кода, использующего этот тип, необходимо добавить ссылку на sysglobl.dll.

Пользовательский язык и региональные параметры можно зарегистрировать на компьютере только тем пользователем, у которого есть права администратора на этом компьютере. Следовательно, приложения обычно не создают и не устанавливают пользовательские язык и региональные параметры. Вместо этого можно использовать CultureAndRegionInfoBuilder класс для создания специального средства, которое администратор может использовать для создания, установки и регистрации пользовательского языка и региональных параметров. После регистрации пользовательского языка и региональных параметров на компьютере можно использовать CultureInfo класс в приложении для создания экземпляров пользовательского языка и региональных параметров так же, как и для предопределенного языка и региональных параметров.

Если вы анализируете строки даты и времени, созданные для настраиваемого языка и региональных параметров, следует использовать DateTime.ParseExact метод или DateTime.TryParseExact метод, DateTime.Parse DateTime.TryParse чтобы повысить вероятность успешного выполнения операции синтаксического анализа. Строка даты и времени для пользовательского языка и региональных параметров может быть сложной и, следовательно, сложной для синтаксического анализа. TryParse Методы Parse пытаются проанализировать строку с несколькими неявными шаблонами синтаксического анализа, все из которых могут завершиться ошибкой. Напротив TryParseExact , метод требует, чтобы приложение явно назначить один или несколько точных шаблонов синтаксического анализа, которые, скорее всего, будут успешными.

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

Класс используется для CultureAndRegionInfoBuilder определения и присвоения имени пользовательского языка и региональных параметров. Пользовательский язык и региональные параметры может быть совершенно новым языком и региональными параметрами, новым языком и региональными параметрами, основанными на существующем языке и региональных параметрах (т. е. дополнительных языках и региональных параметрах), или языком и региональными параметрами, заменяющими существующий язык и региональные параметры платформа .NET Framework. В каждом случае основные шаги одинаковы:

  1. Создайте CultureAndRegionInfoBuilder экземпляр объекта, вызвав его CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) конструктор. Чтобы заменить существующий язык и региональные параметры, передайте имя этого языка и CultureAndRegionModifiers.Replacement значение перечисления конструктору. Чтобы создать новый язык и региональные параметры или дополнительный язык и региональные параметры, передайте уникальное имя CultureAndRegionModifiers.Neutral CultureAndRegionModifiers.None и значение перечисления.

    Примечание

    Если для создания экземпляра объекта используется CultureAndRegionModifiers.Replacement значение перечисления, CultureAndRegionInfoBuilder свойства объекта автоматически заполняются значениями из CultureInfo объекта, которые необходимо заменить.CultureAndRegionInfoBuilder

  2. Если вы создаете новый или дополнительный язык и региональные параметры:

    • CultureAndRegionInfoBuilder Заполните свойства объекта, вызвав LoadDataFromCultureInfo метод и передав объект, CultureInfo значения свойств которого похожи на новый объект.

    • CultureAndRegionInfoBuilder Заполните региональные свойства объекта, вызвав LoadDataFromRegionInfo метод и передав RegionInfo объект, представляющий область пользовательского языка и региональных параметров.

  3. При необходимости измените свойства CultureAndRegionInfoBuilder объекта.

  4. Если вы планируете зарегистрировать пользовательский язык и региональные параметры в отдельной подпрограмме, вызовите Save метод. При этом создается XML-файл, который можно загрузить и зарегистрировать в отдельной процедуре установки пользовательского языка и региональных параметров.

Регистрация пользовательского языка и региональных параметров

Если вы разрабатываете приложение регистрации для пользовательского языка и региональных параметров, отдельно от приложения, создающего язык и региональные параметры, вызовите CreateFromLdml метод для загрузки XML-файла, содержащего определение пользовательского языка и региональных параметров, и создайте CultureAndRegionInfoBuilder экземпляр объекта. Чтобы обработать регистрацию, вызовите Register метод. Для успешной регистрации приложение, которое регистрирует пользовательский язык и региональные параметры, должно выполняться с правами администратора в целевой системе; в противном случае вызов Register вызывает UnauthorizedAccessException исключение.

Предупреждение

Данные языка и региональных параметров могут отличаться между системами. Если вы используете CultureAndRegionInfoBuilder класс для создания пользовательского языка и региональных параметров, единообразного в нескольких системах, и вы создаете пользовательский язык и региональные параметры, загружая данные из существующих CultureInfo и RegionInfo объектов и настраивая их, необходимо разработать две разные служебные программы. Первый создает пользовательский язык и региональные параметры и сохраняет его в XML-файл. Второй использует CreateFromLdml метод для загрузки пользовательского языка и региональных параметров из XML-файла и его регистрации на целевом компьютере.

Процесс регистрации выполняет следующие задачи:

  • Создает NLP-файл, содержащий сведения, определенные в объекте CultureAndRegionInfoBuilder .

  • Сохраняет NLP-файл в системном каталоге %windir%\Globalization на целевом компьютере. Это позволяет сохранять параметры пользовательского языка и региональных параметров между сеансами. (Для CultureAndRegionInfoBuilder метода требуются права администратора, так как NLP-файл хранится в системном каталоге.)

  • Подготавливает платформа .NET Framework для поиска системного каталога %windir%\Globalization вместо внутреннего кэша при следующем запросе на создание нового пользовательского языка и региональных параметров.

Если пользовательский язык и региональные параметры успешно зарегистрированы, он неотличим от языков и региональных параметров, предопределенных платформа .NET Framework. Пользовательский язык и региональные параметры доступны до тех пор, пока вызов CultureAndRegionInfoBuilder метода не удалит NLP-файл с локального компьютера.

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

Экземпляр пользовательского языка и региональных параметров можно создать одним из следующих способов:

Кроме того, массив CultureInfo объектов, возвращаемых методом CultureInfo.GetCultures , включает настраиваемые язык и региональные параметры.

Конструкторы

CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers)

Инициализирует новый экземпляр класса CultureAndRegionInfoBuilder.

Свойства

AvailableCalendars

Возвращает или задает массив календарей, поддерживаемых этим объектом CultureAndRegionInfoBuilder.

CompareInfo

Возвращает или задает объект CompareInfo, определяющий способ сравнения строк для данного языка и региональных параметров.

ConsoleFallbackUICulture

Возвращает или задает альтернативный язык и региональные параметры пользовательского интерфейса, подходящие для консольных приложений, когда не подходит язык и региональные параметры графического пользовательского интерфейса по умолчанию.

CultureEnglishName

Возвращает или задает имя языка и региональных параметров на английском языке.

CultureName

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

CultureNativeName

Возвращает или задает имя языка и региональных параметров в том формате и на том языке, которые заданы для отображения в этом языке и региональных параметрах.

CultureTypes

Возвращает значение CultureTypes, описывающее язык и региональные параметры, представленные текущим объектом CultureAndRegionInfoBuilder.

CurrencyEnglishName

Возвращает или задает на английском языке название валюты, используемой в стране или регионе, представленном объектом CultureAndRegionInfoBuilder.

CurrencyNativeName

Возвращает или задает местное название валюты, используемое в стране или регионе, представленном объектом CultureAndRegionInfoBuilder.

GeoId

Возвращает или задает уникальный идентификационный номер географического региона, страны, города или местности.

GregorianDateTimeFormat

Возвращает или задает объект DateTimeFormatInfo, определяющий формат даты и времени в соответствии с григорианским календарем.

IetfLanguageTag

Возвращает или задает имя языка и региональных параметров в соответствии со стандартом RFC 4646, посвященном тегам для идентификации языков.

IsMetric

Возвращает или задает значение, указывающее, использует ли страна или регион метрическую систему.

ISOCurrencySymbol

Возвращает или задает трехзначный символ денежной единицы в формате ISO 4217, связанный со страной или регионом.

IsRightToLeft

Возвращает или задает преобладающее направление строк текста в системе письма, связанной с текущим объектом CultureAndRegionInfoBuilder.

KeyboardLayoutId

Возвращает или задает идентификатор действующего языка ввода.

LCID

Возвращает идентификатор языка и региональных параметров для текущего объекта CultureAndRegionInfoBuilder.

NumberFormat

Возвращает или задает объект NumberFormatInfo, определяющий формат отображения чисел, денежной единицы и процентов, соответствующий языку и региональным параметрам.

Parent

Возвращает или задает объект CultureInfo, представляющий родительский язык и региональные параметры текущего пользовательского языка и региональных параметров.

RegionEnglishName

Возвращает или задает полное название страны или региона на английском языке.

RegionName

Возвращает название страны или региона для текущего объекта CultureAndRegionInfoBuilder.

RegionNativeName

Возвращает или задает полное название страны или региона на родном языке людей, использующих этот настраиваемый язык и региональные параметры.

TextInfo

Возвращает или задает объект TextInfo, который определяет систему письма, связанную с этим пользовательским языком и региональными параметрами.

ThreeLetterISOLanguageName

Возвращает или задает трехбуквенный код ISO 639-2 языка для данного пользовательского языка и региональных параметров.

ThreeLetterISORegionName

Возвращает или задает код из трех букв, определенный в формате ISO 3166 для страны или региона.

ThreeLetterWindowsLanguageName

Возвращает или задает трехбуквенный код для языка, определенный в формате Windows API.

ThreeLetterWindowsRegionName

Возвращает или задает код из трех букв, присвоенный операционной системой Windows стране или региону, представленному текущим пользовательским языком и региональными параметрами.

TwoLetterISOLanguageName

Возвращает или задает двухбуквенный код ISO 639-1 для языка текущего объекта CultureInfo.

TwoLetterISORegionName

Возвращает или задает код из двух букв, определенный в формате ISO 3166 для страны или региона.

Методы

CreateFromLdml(String)

Восстанавливает объект CultureAndRegionInfoBuilder из указанного XML-файла, содержащего представление объекта.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
LoadDataFromCultureInfo(CultureInfo)

Задает свойства текущего объекта CultureAndRegionInfoBuilder с помощью соответствующих свойств указанного объекта CultureInfo.

LoadDataFromRegionInfo(RegionInfo)

Задает свойства текущего объекта CultureAndRegionInfoBuilder с помощью соответствующих свойств указанного объекта RegionInfo.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Register()

Сохраняет текущий объект CultureAndRegionInfoBuilder в качестве пользовательского языка и региональных параметров на локальном компьютере и открывает приложениям доступ к этому языку и региональным параметрам. Для этого требуются полномочия администратора.

Save(String)

Создает XML-представление текущего объекта CultureAndRegionInfoBuilder в указанном файле.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)
Unregister(String)

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

Применяется к