CultureAndRegionInfoBuilder Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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:
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.
Si está creando una cultura nueva o complementaria:
Rellene las propiedades del objeto CultureAndRegionInfoBuilderllamando al método LoadDataFromCultureInfo y pasando un objetoCultureInfo cuyos valores de propiedad son similares al nuevo objeto.
Rellene las propiedades regionales del objeto CultureAndRegionInfoBuilder llamando al método LoadDataFromRegionInfo y pasando un objeto RegionInfo que representa la región de su cultura personalizada.
Modifique las propiedades del CultureAndRegionInfoBuilder objeto según sea necesario.
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:
- Al invocar el constructor CultureInfo.CultureInfo con el nombre de la referencia cultural.
- Llamando al método CultureInfo.CreateSpecificCulture con el nombre de la cultura.
- Llamando al método CultureInfo.GetCultureInfo con el nombre de la cultura.
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. |