Linguagem

CultureAndRegionInfoBuilder Classe

Definição

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:

  1. 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.

  2. Se você estiver criando uma cultura nova ou suplementar:

  3. Modifique as CultureAndRegionInfoBuilder propriedades do objeto conforme necessário.

  4. 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:

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.

Aplica-se a