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
- Атрибуты
Комментарии
Класс CultureInfo содержит культурно-специфическую информацию, такую как основной язык, диалект, страна/регион, календарь и культурные соглашения. Этот класс также предоставляет экземпляры классов DateTimeFormatInfo, NumberFormatInfo, CompareInfo и TextInfo, зависящие от настроек языка и региональных параметров, необходимые для операций, связанных с определенной культурой, таких как приведение к регистру, форматирование и анализ дат и чисел, а также сравнение строк.
По умолчанию .NET Framework поддерживает CultureInfo объекты, представляющие предопределенный набор языков и региональных параметров. Для списка языков и региональных параметров, доступных в системах Windows, см. столбец Языковой тэг в списке поддерживаемых Windows наименований языков и регионов. Названия культур следуют стандарту, определенному BCP 47. Класс CultureAndRegionInfoBuilder позволяет создать пользовательскую культуру, которая является полностью новой или переопределяет предопределённую культуру. При установке и регистрации пользовательской культуры на определенном компьютере она становится неотличимой от предопределенных CultureInfo объектов и может быть создана и использована так же, как и эти объекты.
Important
Обратите внимание, что CultureAndRegionInfoBuilder класс найден в сборке с именем sysglobl.dll. Для успешного компиляции кода, использующего этот тип, требуется добавить ссылку на sysglobl.dll.
Пользовательскую настройку культуры можно зарегистрировать на компьютере только пользователем, обладающим правами администратора на этом компьютере. Следовательно, приложения обычно не создают и не устанавливают пользовательские региональные параметры. Вместо этого можно использовать CultureAndRegionInfoBuilder класс для создания специального инструмента, который администратор может использовать для создания, установки и регистрации пользовательской культуры. После регистрации пользовательской культуры на компьютере вы можете использовать класс CultureInfo в приложении для создания экземпляров пользовательской культуры так же, как и для предопределенной культуры.
Если вы анализируете строки даты и времени, созданные для пользовательской культуры, вы должны использовать метод DateTime.ParseExact или DateTime.TryParseExact вместо метода DateTime.Parse или DateTime.TryParse, чтобы повысить вероятность успешного выполнения операции синтаксического анализа. Строка даты и времени для пользовательского языка и региональных параметров может быть сложной и поэтому трудной для разбора. Методы Parse и TryParse пытаются проанализировать строку с несколькими неявными шаблонами разбора, которые могут не сработать. Метод TryParseExact , напротив, требует, чтобы приложение явно назначило один или несколько точных шаблонов синтаксического анализа, которые, скорее всего, будут успешными.
Определение и создание пользовательского языка и региональных параметров
Вы используете класс CultureAndRegionInfoBuilder для определения и наименования пользовательской культуры. Пользовательский язык может быть совершенно новым языком и региональными параметрами, новыми языком и региональными параметрами, основанными на существующей культуре и региональных параметров (т. е. дополнительными языком и региональными параметрами), или языком и региональными параметрами, заменяющими существующий язык и региональные параметры .NET Framework. В каждом случае основные шаги одинаковы:
Создайте экземпляр CultureAndRegionInfoBuilder, вызвав его конструктор CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers). Чтобы заменить существующую культуру, передайте имя этой культуры и CultureAndRegionModifiers.Replacement значение перечисления конструктору. Чтобы создать новую или дополнительную культуру, передайте уникальное имя культуры и значение CultureAndRegionModifiers.Neutral или CultureAndRegionModifiers.None из перечисления.
Note
Если вы используете значение CultureAndRegionModifiers.Replacement перечисления для создания экземпляра объекта CultureAndRegionInfoBuilder, свойства объекта CultureAndRegionInfoBuilder автоматически заполняются значениями из объекта CultureInfo для замены.
Если вы создаете новую или дополнительную культуру:
CultureAndRegionInfoBuilder Заполните свойства объекта путем вызова LoadDataFromCultureInfo метода и передачи CultureInfo объекта, значения свойств которого похожи на новый объект.
Заполните региональные свойства объекта CultureAndRegionInfoBuilder, вызвав метод LoadDataFromRegionInfo и передав объект RegionInfo, представляющий регион вашей пользовательской культуры.
При необходимости измените свойства CultureAndRegionInfoBuilder объекта.
Если вы планируете зарегистрировать пользовательскую культуру в отдельной подпрограмме, вызовите метод 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 system directory вместо внутреннего кэша при следующем запросе на создание нового пользовательского языка и региональных параметров.
Если пользовательский язык и региональные параметры успешно зарегистрированы, он неотличим от региональных параметров, предопределенных платформой .NET Framework. Пользовательский язык и региональные параметры доступны, пока вызов CultureAndRegionInfoBuilder метода не удаляет NLP-файл с локального компьютера.
Создание экземпляра пользовательского языка и региональных параметров
Экземпляр настроенной культуры можно создать одним из следующих способов:
- Вызов конструктора CultureInfo.CultureInfo с именем культуры.
- Метод CultureInfo.CreateSpecificCulture вызывается с именем культуры.
- Метод CultureInfo.GetCultureInfo вызывается с именем культуры.
Кроме того, массив CultureInfo объектов, возвращаемых методом CultureInfo.GetCultures, включает пользовательскую культуру.
Пример
В следующем примере определяется пользовательский язык 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
Конструкторы
| Имя | Описание |
|---|---|
| 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 |
Возвращает или задает трехбуквенный код для языка, определенного в API Windows. |
| 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) |
Удаляет пользовательский язык и региональные параметры с локального компьютера. |