Lenguaje

CultureAndRegionInfoBuilder Clase

Definición

Define una referencia cultural personalizada que es nueva o basada en otra referencia cultural y país o región. La referencia cultural personalizada se puede instalar en un equipo y, posteriormente, se puede usar en cualquier aplicación que se ejecute en ese equipo. Esta clase no puede heredarse.

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
Herencia
CultureAndRegionInfoBuilder
Atributos

Comentarios

La CultureInfo clase contiene información específica de la cultura, como el idioma correspondiente, la sublengua, el país o región, el calendario y las convenciones culturales. Esta clase también proporciona instancias específicas de la referencia cultural de las clases DateTimeFormatInfo, NumberFormatInfo, CompareInfo, y TextInfo, que son necesarias para operaciones específicas de la referencia cultural, como el uso de mayúsculas y minúsculas, el formato y el análisis de fechas y números, y la comparación de cadenas.

De forma predeterminada, .NET Framework admite CultureInfo objetos que representan un conjunto predefinido de referencias culturales. Para obtener una lista de estas referencias culturales disponibles en los sistemas Windows, consulte la columna Etiqueta de idioma en la lista de nombres de idioma o región admitidos por Windows. Los nombres de cultura siguen el estándar definido por BCP 47. La CultureAndRegionInfoBuilder clase permite crear una referencia cultural personalizada que sea completamente nueva o que invalide una referencia cultural predefinida. Cuando se instala y registra una cultura personalizada en un equipo determinado, se vuelve indistinguible de objetos predefinidos CultureInfo y puede instanciarse y utilizarse igual que esos objetos.

Importante

Tenga en cuenta que la CultureAndRegionInfoBuilder clase se encuentra en un ensamblado denominado sysglobl.dll. La compilación correcta de código que usa este tipo requiere que se agregue una referencia a sysglobl.dll.

Una cultura personalizada solo puede ser registrada en un ordenador por un usuario que tenga derechos administrativos en ese ordenador. Por lo tanto, las aplicaciones normalmente no crean e instalan referencias culturales personalizadas. En su lugar, puede usar la CultureAndRegionInfoBuilder clase para crear una herramienta de propósito especial que un administrador pueda usar para crear, instalar y registrar una referencia cultural personalizada. Una vez registrada la referencia cultural personalizada en un equipo, puede usar la clase CultureInfo de la aplicación para crear instancias de la referencia cultural personalizada como lo haría con una referencia cultural predefinida.

Si analiza las cadenas de fecha y hora generadas para una referencia cultural personalizada, debe usar el método DateTime.ParseExact o el DateTime.TryParseExact en lugar del método DateTime.Parse o el DateTime.TryParse para mejorar la probabilidad de que la operación de análisis se realice correctamente. Una cadena de fecha y hora para una cultura personalizada puede ser complicada y, por tanto, difícil de analizar. Los Parse métodos y TryParse intentan analizar una cadena con varios patrones de análisis implícitos, lo que podría producir un error. El método TryParseExact, en cambio, requiere que la aplicación designe explícitamente uno o más patrones de análisis exactos que probablemente tengan éxito.

Definición y creación de una referencia cultural personalizada

Use la CultureAndRegionInfoBuilder clase para definir y asignar un nombre a una referencia cultural personalizada. La referencia cultural personalizada puede ser una referencia cultural completamente nueva, una nueva referencia cultural basada en una referencia cultural existente (es decir, una referencia cultural complementaria) o una referencia cultural que reemplaza una referencia cultural de .NET Framework existente. En cada caso, los pasos básicos son los mismos:

  1. Cree una instancia de un CultureAndRegionInfoBuilder objeto llamando a su CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) constructor. Para reemplazar una cultura existente, pase el nombre de esa cultura y el valor de enumeración CultureAndRegionModifiers.Replacement al constructor. Para crear una nueva cultura o una cultura complementaria, pase un nombre de cultura único y el valor de enumeración CultureAndRegionModifiers.Neutral o CultureAndRegionModifiers.None.

    Note

    Si usa el CultureAndRegionModifiers.Replacement valor de enumeración para crear instancias de un CultureAndRegionInfoBuilder objeto, las CultureAndRegionInfoBuilder propiedades del objeto se rellenan automáticamente con valores del CultureInfo objeto que se van a reemplazar.

  2. Si está creando una cultura nueva o complementaria:

  3. Modifique las propiedades del CultureAndRegionInfoBuilder objeto según sea necesario.

  4. Si planea registrar la referencia cultural personalizada en una rutina independiente, llame al método Save. Esto genera un archivo XML que se puede cargar y registrar en una rutina de instalación de cultura personalizada independiente.

Registro de una referencia cultural personalizada

Si va a desarrollar una aplicación de registro para una referencia cultural personalizada independiente de la aplicación que crea la referencia cultural, llame al método para cargar el CreateFromLdml archivo XML que contiene la definición de la referencia cultural personalizada y cree una instancia del CultureAndRegionInfoBuilder objeto. Para controlar el registro, llame al método Register. Para que el registro se realice correctamente, la aplicación que registra la referencia cultural personalizada debe ejecutarse con privilegios administrativos en el sistema de destino; de lo contrario, la llamada a Register produce una UnauthorizedAccessException excepción.

Warning

Los datos de referencia cultural pueden diferir entre sistemas. Si usa la CultureAndRegionInfoBuilder clase para crear una referencia cultural personalizada uniforme en varios sistemas y va a crear la referencia cultural personalizada cargando datos de objetos y CultureInfo existentes RegionInfo y personalizándolo, debe desarrollar dos utilidades diferentes. La primera crea la referencia cultural personalizada y la guarda en un archivo XML. El segundo usa el CreateFromLdml método para cargar la referencia cultural personalizada desde un archivo XML y registrarla en el equipo de destino.

El proceso de registro realiza las siguientes tareas:

  • Crea un archivo .nlp que contiene la información definida en el CultureAndRegionInfoBuilder objeto .

  • Almacena el archivo .nlp en el directorio del sistema \Globalization de %windir%en el equipo de destino. Esto permite que la configuración de la referencia cultural personalizada persista entre sesiones. (El CultureAndRegionInfoBuilder método requiere privilegios administrativos porque el archivo .nlp se almacena en un directorio del sistema).

  • Prepara .NET Framework para buscar en el directorio del sistema de %windir%\Globalization en lugar de una caché interna la próxima vez que haya una solicitud para crear la nueva referencia cultural personalizada.

Cuando una referencia cultural personalizada se registra correctamente, no se puede distinguir de las referencias culturales predefinidas por .NET Framework. La referencia cultural personalizada está disponible hasta que una llamada al CultureAndRegionInfoBuilder método quita el archivo .nlp del equipo local.

Creación de instancias de una referencia cultural personalizada

Puede crear una instancia de la cultura personalizada de una de las formas siguientes:

Además, la matriz de CultureInfo objetos devueltos por el CultureInfo.GetCultures método incluye la referencia cultural personalizada.

Example

En el ejemplo siguiente se define una referencia cultural de ru-US personalizada que representa el idioma ruso en el Estados Unidos. En el ejemplo se define la referencia cultural personalizada cargando la configuración desde el objeto ruso (Rusia) CultureInfo y el objeto estadounidense RegionInfo y, a continuación, se establece una serie de CultureAndRegionInfoBuilder propiedades. En el ejemplo se registra la referencia cultural personalizada y, a continuación, se crea una instancia de ella y se convierte en la referencia cultural actual.

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

Constructores

Nombre Description
CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers)

Inicializa una nueva instancia de la clase CultureAndRegionInfoBuilder.

Propiedades

Nombre Description
AvailableCalendars

Obtiene o establece una matriz de calendarios admitidos por este CultureAndRegionInfoBuilder objeto.

CompareInfo

Obtiene o establece el CompareInfo objeto que define cómo comparar cadenas para la referencia cultural.

ConsoleFallbackUICulture

Obtiene o establece una referencia cultural de interfaz de usuario alternativa adecuada para las aplicaciones de consola cuando la referencia cultural de interfaz de usuario gráfica predeterminada no es adecuada.

CultureEnglishName

Obtiene o establece el nombre de la referencia cultural en inglés.

CultureName

Obtiene el nombre de la referencia cultural que se va a crear.

CultureNativeName

Obtiene o establece el nombre de la referencia cultural en el formato y el idioma que la referencia cultural se establece para mostrar.

CultureTypes

Obtiene el CultureTypes valor que describe la referencia cultural representada por el objeto actual CultureAndRegionInfoBuilder .

CurrencyEnglishName

Obtiene o establece el nombre, en inglés, de la moneda utilizada en el país o región representado por el objeto actual CultureAndRegionInfoBuilder .

CurrencyNativeName

Obtiene o establece el nombre nativo de la moneda utilizada en el país o región representado por el objeto actual CultureAndRegionInfoBuilder .

GeoId

Obtiene o establece un número de identificación único para una región geográfica, un país, una ciudad o una ubicación.

GregorianDateTimeFormat

Obtiene o establece un DateTimeFormatInfo objeto que define el formato de fechas y horas según el calendario gregoriano.

IetfLanguageTag

Obtiene o establece un nombre de referencia cultural con formato según el estándar RFC 4646, "Etiquetas para la identificación de idiomas".

IsMetric

Obtiene o establece un valor que indica si el país o región usa el sistema de métricas para las medidas.

ISOCurrencySymbol

Obtiene o establece el símbolo de moneda ISO 4217 de tres caracteres asociado al país o región.

IsRightToLeft

Obtiene o establece la dirección predominante de líneas de texto en el sistema de escritura asociado al objeto actual CultureAndRegionInfoBuilder .

KeyboardLayoutId

Obtiene o establece el identificador de configuración regional de entrada activo.

LCID

Obtiene el identificador de referencia cultural del objeto actual CultureAndRegionInfoBuilder .

NumberFormat

Obtiene o establece un NumberFormatInfo objeto que define el formato culturalmente adecuado para mostrar números, moneda y porcentaje.

Parent

Obtiene o establece el CultureInfo objeto que representa la referencia cultural primaria de la referencia cultural personalizada actual.

RegionEnglishName

Obtiene o establece el nombre completo del país o región en inglés.

RegionName

Obtiene el nombre del país o región del objeto actual CultureAndRegionInfoBuilder .

RegionNativeName

Obtiene o establece el nombre completo del país o región conocido por las personas de esta referencia cultural personalizada.

TextInfo

Obtiene o establece el TextInfo objeto que define el sistema de escritura asociado a esta referencia cultural personalizada.

ThreeLetterISOLanguageName

Obtiene o establece el código de tres letras ISO 639-2 para el idioma de esta referencia cultural personalizada.

ThreeLetterISORegionName

Obtiene o establece el código de tres letras definido en ISO 3166 para el país o región.

ThreeLetterWindowsLanguageName

Obtiene o establece el código de tres letras para el idioma tal como se define en la API de Windows.

ThreeLetterWindowsRegionName

Obtiene o establece el código de tres letras asignado por Windows al país o región representado por la referencia cultural personalizada actual.

TwoLetterISOLanguageName

Obtiene o establece el código de dos letras ISO 639-1 para el idioma del objeto actual CultureInfo .

TwoLetterISORegionName

Obtiene o establece el código de dos letras definido en ISO 3166 para el país o región.

Métodos

Nombre Description
CreateFromLdml(String)

Reconstituye un CultureAndRegionInfoBuilder objeto de un archivo XML especificado que contiene una representación del objeto.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
LoadDataFromCultureInfo(CultureInfo)

Establece las propiedades del objeto actual CultureAndRegionInfoBuilder con las propiedades correspondientes del objeto especificado CultureInfo .

LoadDataFromRegionInfo(RegionInfo)

Establece las propiedades del objeto actual CultureAndRegionInfoBuilder con las propiedades correspondientes del objeto especificado RegionInfo .

MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
Register()

Conserva el objeto actual CultureAndRegionInfoBuilder como una referencia cultural personalizada en el equipo local y hace que esa referencia cultural esté disponible para las aplicaciones. Requiere privilegios administrativos.

Save(String)

Escribe una representación XML del objeto actual CultureAndRegionInfoBuilder en el archivo especificado.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
Unregister(String)

Elimina una referencia cultural personalizada del equipo local.

Se aplica a