CultureAndRegionInfoBuilder Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define uma cultura personalizada que é nova ou baseada noutra cultura e país/região. A cultura personalizada pode ser instalada num computador e posteriormente usada por qualquer aplicação que esteja a correr nesse computador. Esta 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
Observações
A CultureInfo classe contém informações específicas da cultura, como o idioma associado, subidioma, país/região, calendário e convenções culturais. Essa classe também fornece instâncias específicas de cultura das classes DateTimeFormatInfo, NumberFormatInfo, CompareInfo e TextInfo, que são necessárias para operações específicas da cultura, como manipulaçã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 defeito, o .NET Framework suporta CultureInfo objetos que representam um conjunto pré-definido de culturas. Para obter uma lista dessas culturas disponíveis em sistemas Windows, consulte a coluna Marca de idioma na lista de nomes de idioma/região suportados pelo Windows. Os nomes das culturas seguem o padrão definido pelo BCP 47. A CultureAndRegionInfoBuilder classe permite que você crie uma cultura personalizada que é completamente nova ou que substitui uma cultura predefinida. Quando uma cultura personalizada é instalada e registrada em um determinado computador, ela se torna indistinguível de objetos predefinidos CultureInfo e pode ser instanciada e usada exatamente como esses objetos.
Importante
Note que a CultureAndRegionInfoBuilder classe é encontrada numa assembleia chamada sysglobl.dll. Compilar com sucesso código que utilize este tipo requer que adicione uma referência a sysglobl.dll.
Uma cultura personalizada só pode ser registada num computador por um utilizador 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 analisar 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 êxito da operação de análise. Uma cadeia de caracteres de data e hora para uma cultura personalizada pode ser complicada e, portanto, difícil de analisar. Os Parse métodos e TryParse tentam analisar uma cadeia de caracteres com vários padrões de análise implícitos, todos os quais podem falhar. O TryParseExact método, por outro lado, requer que o aplicativo designe explicitamente um ou mais padrões de análise exatos que provavelmente terão êxito.
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 numa cultura existente (ou seja, uma cultura suplementar), ou uma cultura que substitui uma cultura existente do .NET Framework. Em cada caso, os passos básicos são os mesmos:
Instancie um CultureAndRegionInfoBuilder objeto chamando seu CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) construtor. Para substituir uma cultura existente, passe o nome da cultura e o valor de enumeração CultureAndRegionModifiers.Replacement para o construtor. Para criar uma nova cultura ou uma cultura suplementar, passe um exclusivo nome de cultura 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 propriedades do objeto serão preenchidas CultureAndRegionInfoBuilder automaticamente com valores do CultureInfo objeto a ser substituído.
Se você estiver criando uma cultura nova ou suplementar:
Preencha 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 objeto CultureAndRegionInfoBuilder chamando o método LoadDataFromRegionInfo e passando um objeto RegionInfo que representa a região da sua cultura personalizada.
Modifique as CultureAndRegionInfoBuilder propriedades do objeto conforme necessário.
Caso esteja a planear registar a cultura personalizada numa 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.
Registo de uma Cultura Personalizada
Se você estiver desenvolvendo um aplicativo de registro para uma cultura personalizada separada do aplicativo que cria a cultura, chamará 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 sendo executado com privilégios administrativos no sistema de destino; caso contrário, a chamada para Register lança uma UnauthorizedAccessException exceção.
Warning
Os dados de cultura podem diferir entre sistemas. Se estiveres a usar a CultureAndRegionInfoBuilder classe para criar uma cultura personalizada uniforme em vários sistemas e estiveres a criar a tua cultura personalizada carregando dados de objetos existentes CultureInfoRegionInfo e personalizando-os, deves desenvolver duas utilidades 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 registo executa as seguintes tarefas:
Cria um ficheiro .nlp que contém a informação definida no CultureAndRegionInfoBuilder objeto.
Armazena o ficheiro .nlp no diretório %windir%\Globalization system no computador alvo. Isso permite que as configurações da cultura personalizada persistam entre as sessões. (O CultureAndRegionInfoBuilder método requer privilégios administrativos porque o ficheiro .nlp é armazenado num diretório do sistema.)
Prepara .NET Framework para pesquisar o diretório do sistema %windir%\Globalization em vez de uma cache interna da próxima vez que houver um pedido para criar a sua nova cultura personalizada.
Quando uma cultura personalizada é registada com sucesso, é indistinguível das culturas que são pré-definidas pelo .NET Framework. A cultura personalizada está disponível até que uma chamada ao CultureAndRegionInfoBuilder método remova o ficheiro .nlp do computador local.
Instauração de uma Cultura Personalizada
Você pode criar uma instância da cultura personalizada de uma das seguintes maneiras:
- Ao invocar o CultureInfo.CultureInfo construtor com o nome da cultura.
- Chamando o CultureInfo.CreateSpecificCulture método com o nome da cultura.
- Chamando o CultureInfo.GetCultureInfo método com o nome da cultura.
Além disso, a matriz de CultureInfo objetos que é retornada pelo método CultureInfo.GetCultures inclui a cultura personalizada.
Example
O exemplo seguinte define uma cultura ru-US costume que representa a língua russa no Estados Unidos. O exemplo define a cultura personalizada ao carregar definições do objeto russo (Rússia) CultureInfo e do objeto dos EUA RegionInfo , e depois define várias CultureAndRegionInfoBuilder propriedades. O exemplo regista a cultura personalizada, depois instancia-a e transforma-a na 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
| Name | Descrição |
|---|---|
| CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) |
Inicializa uma nova instância da CultureAndRegionInfoBuilder classe. |
Propriedades
| Name | Descrição |
|---|---|
| AvailableCalendars |
Obtém ou define um array de calendários suportados por este CultureAndRegionInfoBuilder objeto. |
| CompareInfo |
Obtém ou define o CompareInfo objeto que define como comparar as cordas para a cultura. |
| ConsoleFallbackUICulture |
Obtém ou estabelecem uma cultura alternativa de interface de utilizador adequada para aplicações de consola quando a cultura de interface gráfica padrão é inadequada. |
| CultureEnglishName |
Recebe ou define o nome da cultura em inglês. |
| CultureName |
Recebe o nome da cultura que está a ser criada. |
| CultureNativeName |
Recebe ou define o nome da cultura no formato e na língua que a cultura vai mostrar. |
| CultureTypes |
Obtém o CultureTypes valor que descreve a cultura representada pelo objeto atual CultureAndRegionInfoBuilder . |
| CurrencyEnglishName |
Recebe 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 representada pelo objeto atual CultureAndRegionInfoBuilder . |
| GeoId |
Obtém ou define um número de identificação único para uma região geográfica, país, cidade ou localização. |
| GregorianDateTimeFormat |
Obtém ou define um DateTimeFormatInfo objeto que define o formato das datas e horas de acordo com o calendário gregoriano. |
| IetfLanguageTag |
Recebe ou define um nome de cultura formatado de acordo com a norma RFC 4646, "Tags for the Identification of Languages." |
| IsMetric |
Recebe ou define um valor que indica se o país/região utiliza o sistema métrico para medições. |
| ISOCurrencySymbol |
Recebe ou define o símbolo da 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 escrita associadas ao objeto atual CultureAndRegionInfoBuilder . |
| KeyboardLayoutId |
Obtém ou define o identificador ativo de local de entrada. |
| LCID |
Obtém o identificador de cultura do objeto atual CultureAndRegionInfoBuilder . |
| NumberFormat |
Recebe ou define um NumberFormatInfo objeto que define o formato culturalmente apropriado para mostrar números, moeda e percentagem. |
| Parent |
Obtém ou define o CultureInfo objeto que representa a cultura-mãe 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 tal como é conhecido pelas pessoas desta cultura costumeira. |
| TextInfo |
Obtém ou define o TextInfo objeto que define o sistema de escrita associado a esta cultura personalizada. |
| ThreeLetterISOLanguageName |
Obtém ou define o código ISO 639-2 de três letras para a língua desta cultura personalizada. |
| ThreeLetterISORegionName |
Recebe ou define o código de três letras definido na ISO 3166 para o país/região. |
| ThreeLetterWindowsLanguageName |
Obtém ou define o código de três letras da linguagem conforme definido na API do Windows. |
| ThreeLetterWindowsRegionName |
Recebe 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 ISO 639-1 de duas letras para a linguagem do objeto atual CultureInfo . |
| TwoLetterISORegionName |
Obtém ou define o código de duas letras definido na ISO 3166 para o país/região. |
Métodos
| Name | Descrição |
|---|---|
| CreateFromLdml(String) |
Reconstitui um CultureAndRegionInfoBuilder objeto a partir de um ficheiro 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 função de hash predefinida. (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 atual Object. (Herdado de Object) |
| Register() |
Persiste o objeto atual CultureAndRegionInfoBuilder como uma cultura personalizada no computador local e disponibiliza essa cultura às aplicações. Requer privilégios administrativos. |
| Save(String) |
Escreve uma representação XML do objeto atual CultureAndRegionInfoBuilder no ficheiro especificado. |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| Unregister(String) |
Apaga uma cultura personalizada do computador local. |