CultureAndRegionInfoBuilder Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Define uma cultura personalizada nova ou baseada em outra cultura e país/região. A cultura personalizada pode ser instalada em um computador e, posteriormente, usada por qualquer aplicativo em execução nesse computador. Essa classe não pode ser herdada.
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
- Herança
-
CultureAndRegionInfoBuilder
- Atributos
Comentários
A CultureInfo classe contém informações específicas da cultura, como a linguagem associada, o subidioma, o país/região, o calendário e as convenções culturais. Essa classe também fornece instâncias específicas da cultura das classes DateTimeFormatInfo, NumberFormatInfo, CompareInfo e TextInfo, que são necessárias para operações específicas da cultura, como colocação de maiúsculas e minúsculas, formatação e análise de datas e números e comparação de cadeias de caracteres.
Por padrão, .NET Framework dá CultureInfo suporte a objetos que representam um conjunto predefinido de culturas. Para obter uma lista dessas culturas disponíveis em sistemas Windows, consulte a coluna de etiqueta de idioma na lista de nomes de idioma/região compatíveis com o Windows. Os nomes de cultura seguem o padrão definido pelo BCP 47. A CultureAndRegionInfoBuilder classe permite que você crie uma cultura personalizada completamente nova ou que substitua uma cultura predefinida. Quando uma cultura personalizada é instalada e registrada em um computador específico, ela se torna indistinguível de objetos predefinidos CultureInfo e pode ser instanciada e usada da mesma forma que esses objetos.
Importante
Observe que a CultureAndRegionInfoBuilder classe é encontrada em um assembly chamado sysglobl.dll. Compilar com êxito o código que usa esse tipo requer que você adicione uma referência a sysglobl.dll.
Uma cultura personalizada pode ser registrada em um computador somente por um usuário que tenha direitos administrativos nesse computador. Consequentemente, os aplicativos normalmente não criam e instalam culturas personalizadas. Em vez disso, você pode usar a CultureAndRegionInfoBuilder classe para criar uma ferramenta de finalidade especial que um administrador pode usar para criar, instalar e registrar uma cultura personalizada. Depois que a cultura personalizada for registrada em um computador, você poderá usar a CultureInfo classe em seu aplicativo para criar instâncias da cultura personalizada da mesma forma que faria para uma cultura predefinida.
Se você analisar as cadeias de caracteres de data e hora geradas para uma cultura personalizada, deverá usar o método DateTime.ParseExact ou DateTime.TryParseExact em vez do método DateTime.Parse ou DateTime.TryParse para melhorar a probabilidade de que a operação de análise seja bem-sucedida. Uma cadeia de caracteres de data e hora para uma cultura personalizada pode ser complicada e, portanto, difícil de analisar. Os métodos Parse e TryParse tentam analisar uma cadeia de caracteres com vários padrões implícitos de análise, todos os quais podem falhar. O TryParseExact método, por outro lado, requer que o aplicativo designe explicitamente um ou mais padrões exatos de análise que provavelmente serão bem-sucedidos.
Definindo e criando uma cultura personalizada
Você usa a CultureAndRegionInfoBuilder classe para definir e nomear uma cultura personalizada. A cultura personalizada pode ser uma cultura totalmente nova, uma nova cultura baseada em uma cultura existente (ou seja, uma cultura complementar) ou uma cultura que substitui uma cultura existente .NET Framework. Em cada caso, as etapas básicas são as mesmas:
Instancie um CultureAndRegionInfoBuilder objeto chamando seu CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) construtor. Para substituir uma cultura existente, passe o nome dessa cultura e o valor de enumeração CultureAndRegionModifiers.Replacement para o construtor. Para criar uma nova cultura ou uma cultura complementar, passe um nome de cultura exclusivo e o valor de enumeração CultureAndRegionModifiers.Neutral ou CultureAndRegionModifiers.None.
Note
Se você usar o CultureAndRegionModifiers.Replacement valor de enumeração para instanciar um CultureAndRegionInfoBuilder objeto, as CultureAndRegionInfoBuilder propriedades do objeto serão preenchidas automaticamente com valores do CultureInfo objeto a serem substituídos.
Se você estiver criando uma cultura nova ou complementar:
Popule as propriedades do objeto CultureAndRegionInfoBuilder chamando o método LoadDataFromCultureInfo e passando um objeto CultureInfo cujos valores de propriedade são semelhantes ao seu novo objeto.
Preencha as propriedades regionais do CultureAndRegionInfoBuilder objeto chamando o método LoadDataFromRegionInfo e passando um RegionInfo objeto que representa a região de sua cultura personalizada.
Modifique as propriedades do CultureAndRegionInfoBuilder objeto conforme necessário.
Se você estiver planejando registrar a cultura personalizada em uma rotina separada, chame o método Save. Isso gera um arquivo XML que você pode carregar e registrar em uma rotina de instalação de cultura personalizada separada.
Registrando uma cultura personalizada
Se você estiver desenvolvendo um aplicativo de registro para uma cultura personalizada separada do aplicativo que cria a cultura, chame o CreateFromLdml método para carregar o arquivo XML que contém a definição da cultura personalizada e instanciar o CultureAndRegionInfoBuilder objeto. Para lidar com o registro, chame o Register método. Para que o registro seja bem-sucedido, o aplicativo que registra a cultura personalizada deve estar em execução com privilégios administrativos no sistema de destino; caso contrário, a chamada para Register gera uma exceção UnauthorizedAccessException.
Warning
Os dados de cultura podem ser diferentes entre sistemas. Se você estiver usando a CultureAndRegionInfoBuilder classe para criar uma cultura personalizada uniforme em vários sistemas e estiver criando sua cultura personalizada carregando dados de objetos existentes CultureInfo e RegionInfo e personalizando-os, você deverá desenvolver dois utilitários diferentes. O primeiro cria a cultura personalizada e a salva em um arquivo XML. O segundo usa o CreateFromLdml método para carregar a cultura personalizada de um arquivo XML e registrá-la no computador de destino.
O processo de registro executa as seguintes tarefas:
Cria um arquivo .nlp que contém as informações definidas no CultureAndRegionInfoBuilder objeto.
Armazena o arquivo .nlp no diretório do sistema de %windir%\Globalização no computador de destino. Isso permite que as configurações da cultura personalizada persistam entre as sessões. (O CultureAndRegionInfoBuilder método requer privilégios administrativos porque o arquivo .nlp é armazenado em um diretório do sistema.)
Prepara .NET Framework para pesquisar o diretório do sistema de %windir%\Globalização em vez de um cache interno na próxima vez que houver uma solicitação para criar sua nova cultura personalizada.
Quando uma cultura personalizada é registrada com êxito, ela é indistinguível das culturas predefinidas pelo .NET Framework. A cultura personalizada está disponível até que uma chamada para o CultureAndRegionInfoBuilder método remova o arquivo .nlp do computador local.
Instanciando uma cultura personalizada
Você pode criar uma instância da cultura personalizada de uma das seguintes maneiras:
- Invocando o construtor CultureInfo.CultureInfo com o nome da cultura.
- Chamando o método CultureInfo.CreateSpecificCulture com o nome da cultura.
- Chamando o método CultureInfo.GetCultureInfo com o nome da cultura.
Além disso, a matriz de CultureInfo objetos que é retornada pelo CultureInfo.GetCultures método inclui a cultura personalizada.
Exemplo
O exemplo a seguir define uma cultura de ru-US personalizada que representa o idioma russo no Estados Unidos. O exemplo define a cultura personalizada carregando configurações do objeto russo (Rússia) CultureInfo e do objeto dos EUA RegionInfo e define várias CultureAndRegionInfoBuilder propriedades. O exemplo registra a cultura personalizada e, em seguida, cria uma instância e a torna a cultura atual.
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
Construtores
| Nome | Description |
|---|---|
| CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) |
Inicializa uma nova instância da classe CultureAndRegionInfoBuilder. |
Propriedades
| Nome | Description |
|---|---|
| AvailableCalendars |
Obtém ou define uma matriz de calendários compatíveis com esse CultureAndRegionInfoBuilder objeto. |
| CompareInfo |
Obtém ou define o CompareInfo objeto que define como comparar cadeias de caracteres para a cultura. |
| ConsoleFallbackUICulture |
Obtém ou define uma cultura de interface do usuário alternativa adequada para aplicativos de console quando a cultura padrão da interface do usuário gráfica é inadequada. |
| CultureEnglishName |
Obtém ou define o nome da cultura em inglês. |
| CultureName |
Obtém o nome da cultura que está sendo criada. |
| CultureNativeName |
Obtém ou define o nome da cultura no formato e idioma que a cultura está definida para exibir. |
| CultureTypes |
Obtém o CultureTypes valor que descreve a cultura representada pelo objeto atual CultureAndRegionInfoBuilder . |
| CurrencyEnglishName |
Obtém ou define o nome, em inglês, da moeda usada no país/região representada pelo objeto atual CultureAndRegionInfoBuilder . |
| CurrencyNativeName |
Obtém ou define o nome nativo da moeda usada no país/região representado pelo objeto atual CultureAndRegionInfoBuilder . |
| GeoId |
Obtém ou define um número de identificação exclusivo para uma região geográfica, país, cidade ou localização. |
| GregorianDateTimeFormat |
Obtém ou define um DateTimeFormatInfo objeto que define o formato de datas e horas de acordo com o calendário gregoriano. |
| IetfLanguageTag |
Obtém ou define um nome de cultura formatado de acordo com o padrão RFC 4646, "Marcas para a Identificação de Idiomas". |
| IsMetric |
Obtém ou define um valor que indica se o país/região usa o sistema de métricas para medidas. |
| ISOCurrencySymbol |
Obtém ou define o símbolo de moeda ISO 4217 de três caracteres associado ao país/região. |
| IsRightToLeft |
Obtém ou define a direção predominante das linhas de texto no sistema de gravação associado ao objeto atual CultureAndRegionInfoBuilder . |
| KeyboardLayoutId |
Obtém ou define o identificador de localidade de entrada ativo. |
| LCID |
Obtém o identificador de cultura do objeto atual CultureAndRegionInfoBuilder . |
| NumberFormat |
Obtém ou define um NumberFormatInfo objeto que define o formato culturalmente apropriado de exibir números, moeda e porcentagem. |
| Parent |
Obtém ou define o CultureInfo objeto que representa a cultura pai da cultura personalizada atual. |
| RegionEnglishName |
Obtém ou define o nome completo do país/região em inglês. |
| RegionName |
Obtém o nome do país/região do objeto atual CultureAndRegionInfoBuilder . |
| RegionNativeName |
Obtém ou define o nome completo do país/região, conforme conhecido pelas pessoas dessa cultura personalizada. |
| TextInfo |
Obtém ou define o TextInfo objeto que define o sistema de gravação associado a essa cultura personalizada. |
| ThreeLetterISOLanguageName |
Obtém ou define o código de três letras ISO 639-2 para o idioma dessa cultura personalizada. |
| ThreeLetterISORegionName |
Obtém ou define o código de três letras definido no ISO 3166 para o país/região. |
| ThreeLetterWindowsLanguageName |
Obtém ou define o código de três letras para o idioma, conforme definido na API do Windows. |
| ThreeLetterWindowsRegionName |
Obtém ou define o código de três letras atribuído pelo Windows ao país/região representado pela cultura personalizada atual. |
| TwoLetterISOLanguageName |
Obtém ou define o código de duas letras ISO 639-1 para o idioma do objeto atual CultureInfo . |
| TwoLetterISORegionName |
Obtém ou define o código de duas letras definido no ISO 3166 para o país/região. |
Métodos
| Nome | Description |
|---|---|
| CreateFromLdml(String) |
Reconstitui um CultureAndRegionInfoBuilder objeto de um arquivo XML especificado que contém uma representação do objeto. |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| LoadDataFromCultureInfo(CultureInfo) |
Define as propriedades do objeto atual CultureAndRegionInfoBuilder com as propriedades correspondentes do objeto especificado CultureInfo . |
| LoadDataFromRegionInfo(RegionInfo) |
Define as propriedades do objeto atual CultureAndRegionInfoBuilder com as propriedades correspondentes do objeto especificado RegionInfo . |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| Register() |
Persiste o objeto atual CultureAndRegionInfoBuilder como uma cultura personalizada no computador local e disponibiliza essa cultura para aplicativos. Requer privilégios administrativos. |
| Save(String) |
Grava uma representação XML do objeto atual CultureAndRegionInfoBuilder no arquivo especificado. |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
| Unregister(String) |
Exclui uma cultura personalizada do computador local. |