Novedades de la globalización y localización

En este tema se describen los cambios de las clases y enumeraciones del espacio de nombres System.Globalization realizados en .NET Framework versión 4. Este tema contiene las secciones siguientes:

  • Nuevas referencias culturales neutras

  • Nuevas referencias culturales concretas

  • Valores de propiedades de globalización actualizados

  • Obtener información de globalización actual

  • Control de cadenas

  • Uso reducido de identificadores de configuración regional

  • Propiedades de referencias culturales neutras

  • Cambios de las referencias culturales personalizadas

  • Características que no han cambiado

Nuevas referencias culturales neutras

.NET Framework 4 proporciona soporte técnico para un mínimo de 354 referencias culturales, en comparación con las 203 referencias culturales de la versión anterior. Muchas de las referencias culturales nuevas son referencias culturales neutras que se agregaron para completar la cadena primaria de la referencia cultural neutra raíz. Por ejemplo, se agregaron tres referencias culturales neutras de inuktitut a las existentes, Inuktitut (silábico, Canadá) e Inuktitut (Latino, Canadá), como se muestra en la siguiente tabla:

Nombre para mostrar de la referencia cultural

Nombre de referencia cultural

LCID

Inuktitut

Iu

0x005d

Inuktitut (Syllabics)

iu-Cans

0x785D

Inuktitut (Syllabics, Canadá)

iu-Cans-CA

0x045D

Inuktitut (latino)

iu-Latn

0x7C5D

Inuktitut (latino, Canadá)

iu-Latn-CA

0x085D

Nuevas referencias culturales concretas

.NET Framework 4 también introduce nuevas referencias culturales concretas, como las nuevas referencias culturales del serbio. Las referencias culturales del serbio anteriores cambiaron el nombre a serbio (cirílico, Serbia y Montenegro (anterior)) y serbio (latino, Serbia y Montenegro (anterior)) para evitar la colisión del nombre para mostrar. Esas referencias culturales se mantienen en .NET Framework con su información existente, como sus nombres e identificadores.

Nombre para mostrar de la referencia cultural

Nombre de referencia cultural

LCID

Serbio latino (Serbia y Montenegro)

sr Latn RS

0x241A

Serbio cirílico (Serbia y Montenegro)

sr Cyrl RS

0x281A

Serbio - Montenegro (latino)

sr-Latn-ME

0x2C1A

Serbio - Montenegro (cirílico)

sr-Cyrl-ME

0x301A

Los nombres para mostrar de las referencias culturales del chino han cambiado para adaptarse a la convención de nomenclatura NombreDeIdioma ([Script,] País/NombreDeRegión). En .NET Framework 4, se ha anexado la palabra "heredado" a los nombres para mostrar de zh-CHS y zh-CHT para diferenciarlos de zh-Hans y zh-Hant. El nombre para mostrar de zh, que se introdujo recientemente en Windows, es "chino".

Nombre para mostrar

Nombre de referencia cultural

LCID

Chino

zh

0x7804

Chino (simplificado) heredado

zh-CHS

0x0004

Chino (tradicional) heredado

zh-CHT

0x7C04

Chino (simplificado)

zh-Hans

0x0004

Chino (Tradicional)

zh-Hant

0x7C04

Chino (simplificado, PRC)

zh-CN

0x0804

Chino (tradicional, Hong Kong S.A.R.)

zh-HK

0x0C04

Chino (tradicional, Macao S.A.R.)

zh-MO

0x1404

Chino (simplificado, Singapur)

zh-SG

0x1004

Chino (tradicional, Taiwan)

zh-TW

0x0404

La cadena primaria de las referencias culturales chinas incluye ahora la referencia cultural china raíz. En los ejemplos siguientes se muestra la cadena primaria completa de dos de las referencias culturales chinas concretas:

  • zh-CN → zh-CHS → zh-Hans → zh → Invariant

  • zh-TW → zh-CHT → zh-Hant → zh → Invariant

Los nombres para mostrar del tibetano (PRC), francés (Mónaco), tamazight (latino, Argelia) y español (España, alfabetización internacional) también se han actualizado. Cuando el nombre para mostrar cambia, este cambio se refleja normalmente en el nombre inglés y el nombre nativo; sin embargo, el nombre ISO y el nombre abreviado del script, del idioma y del país también podrían cambiar.

Valores de propiedades de globalización actualizados

.NET Framework 4 actualiza también los valores de propiedades de globalización, como la divisa, los formatos de fecha y hora, los nombres de los días y meses, los designadores a. m. y p. m. y algunas propiedades de formato de número. En la tabla siguiente se proporcionan ejemplos de los cambios de nombre de divisa realizados en la clase System.Globalization.RegionInfo.

Nombre de referencia cultural

Nombre de divisa en la versión 3.5

Nombre de divisa en la versión 4

mt-MT

Lira de Malta

Euro

sk-SK

Corona eslovaca

Euro

sl-SI

Tolar esloveno

Euro

tr-TR

Nueva lira turca

Nueva lira turca

En la tabla siguiente se proporciona un ejemplo de los cambios realizados en el modelo de fecha corta de la clase System.Globalization.DateTimeFormatInfo.

Nombre de referencia cultural

Modelo de fecha corta en la versión 3.5

Modelo de fecha corta en la versión 4

ar-SA

dd/MM/aa

dd/MM/aaaa

prs-AF

dd/MM/aa

aaaa/M/d

ps-AF

dd/MM/aa

aaaa/M/d

pt-BR

d/M/aaaa

dd/MM/aaaa

Algunos datos del calendario se han modificado, como los nombres de los días y meses de muchas referencias culturales (por ejemplo, la propiedad DateTimeFormatInfo.ShortestDayNames de las referencias culturales del árabe). Algunas referencias culturales de derecha a izquierda, como prs-AF, ps-AF y ug-CN, tenían valores incorrectos en la propiedad TextInfo.IsRightToLeft, que se han corregido en esta versión.

Obtener información de globalización actual

Una de las características de globalización principales de .NET Framework 4 es la capacidad de proporcionar la información más reciente donde está disponible. La información de globalización más antigua que proporcionará esta versión son los datos disponibles en el momento del lanzamiento y solo cuando se ejecute una versión de Windows anterior a Windows 7. Si se ejecuta Windows 7 y versiones posteriores, la información de globalización se recuperará directamente del sistema operativo, lo que significa que los clientes obtendrán la información de globalización actual cuando actualicen a una nueva versión de Windows. Los clientes que ejecutan Windows 7 y versiones posteriores tendrán una experiencia de globalización unificada para aplicaciones administradas (.NET) y nativas (Win32).

Debido a este mundo siempre cambiante, la información de globalización puede experimentar cambios en cualquier momento; los desarrolladores no deberían esperar que los valores de las propiedades de globalización se conserven entre versiones, ni siquiera en la misma versión de .NET Framework. Este comportamiento no es del todo nuevo para los usuarios de .NET Framework. Las propiedades de las referencias culturales únicas de Windows compatibles desde .NET Framework 2 podrían tener valores diferentes si se ejecutan en versiones de Windows diferentes

El nombre es la propiedad más estable de la información de la referencia cultural y es previsible que se mantenga en futuras versiones. Otras propiedades, como el nombre para mostrar de la referencia cultural, podrían cambiar en cualquier momento, de modo que las aplicaciones no deberían depender de la ortografía del nombre para mostrar o de cualquier otro dato textual o numérico.

El mecanismo de recuperación de la información de globalización ha cambiado en .NET Framework 4. Si su aplicación se está ejecutando en Windows 7 o versiones posteriores, la información de globalización se recupera directamente del sistema operativo. Si la aplicación se está ejecutando en una versión anterior de Windows (como Windows Vista, Windows XP, Windows Server 2003 o Windows Server 2008), la información de globalización se recupera de un almacén de datos interno para garantizar que los datos están actualizados.

En el nuevo modelo de recuperación de la información de globalización, cambiarán las definiciones de algunos objetos CultureTypes, ya que la información de globalización se recupera de ubicaciones diferentes que dependen del sistema operativo host. Los miembros WindowsOnlyCultures y FrameworkCultures de CultureTypes ahora están obsoletos. Si intenta usar esos miembros, el compilador genera una advertencia, aunque la compilación se realiza correctamente. Si se usa WindowsOnlyCultures, no se devuelve ninguna referencia cultural, mientras que FrameworkCultures devuelve todas las referencias culturales. Otros miembros de CultureTypes tienen las mismas definiciones que tenían antes.

Control de cadenas

Muchas clases de .NET Framework, incluidas las clases CharUnicodeInfo, CompareInfo, StringInfo, TextInfo y TextElementEnumerator del espacio de nombres System.Globalization, implementan reglas de ordenación, uso de mayúsculas y normalización, y recuperan información de caracteres Unicode. En .NET Framework 4, estas características se sincronizan con Windows 7, lo que proporciona funciones lingüísticas de ordenación y uso de mayúsculas más avanzadas para los idiomas chino, japonés coreano (CJK) y soluciona muchos de los problemas notificados por los clientes. El cambio más importante es el cumplimiento del estándar Unicode 5.1, que agrega compatibilidad con aproximadamente 1400 caracteres, incluidos nuevos símbolos, flechas, signos diacríticos, signos de puntuación, símbolos matemáticos, trazos de CJK, ideogramas y caracteres numéricos del malayalam y el telugu. Además, en Unicode 5.1 ha mejorado la ordenación y el uso de mayúsculas en los caracteres de los siguientes scripts existentes: latino, birmano, árabe, griego, mongol, cirílico, gurmukhi, oriya, tamil, telugu y malayalam. También agrega compatibilidad con estos nuevos scripts: sudanés, lepcha, ol chiki, vai, saurashtra, kayah li, rejang y cham.

En muchos escenarios, como los de indización de bases de datos, es necesario que el control de cadenas tenga un comportamiento coherente entre distintas versiones de Windows. .NET Framework 4 garantiza un comportamiento coherente de las operaciones de control de cadenas sin tener en cuenta la versión de Windows del host.

Las aplicaciones existentes que crean índices de bases de datos o almacenan claves cortas podrían depender del comportamiento de ordenación o uso de mayúsculas de .NET Framework 2.0 o 3.5. Para admitir estas aplicaciones, .NET Framework 4 permite a los desarrolladores de software aplicar el comportamiento de ordenación y uso de mayúsculas heredado. Para ello, es necesario incluir el elemento <CompatSortNLSVersion> en el archivo de configuración de la aplicación. Las reglas de ordenación y uso de mayúsculas heredadas también pueden aplicarse a cada dominio de aplicación individual durante su configuración llamando al método AppDomainSetup.SetCompatibilitySwitches con el modificador "NetFx40_LegacySecurityPolicy". Tenga en cuenta que la restauración correcta del comportamiento heredado dependerá de la presencia de la biblioteca de vínculos dinámicos sort00001000.dll en el sistema local.

.NET Framework 4 proporciona varias opciones de ordenación para algunas referencias culturales. Por ejemplo, la referencia cultural Alemán (Alemania) usa de manera predeterminada el criterio de ordenación del diccionario; sin embargo, admite de forma predeterminada la ordenación de libreta de teléfonos como criterio de ordenación alternativo. Otro ejemplo, la referencia cultural china (simplificado, PRC) admite la ordenación por pronunciación como comportamiento predeterminado y la ordenación por recuento de trazos como criterio de ordenación alternativo. Para especificar el criterio de ordenación alternativo, puede crear un objeto CultureInfo utilizando el LCID o el nombre del criterio de ordenación alternativo. Se han quitado tres criterios de ordenación alternativos de .NET Framework 4 porque están en desuso en Windows. Si se intenta crear un objeto CultureInfo con el LCID de estos criterios de ordenación alternativos desusados, se inicia una excepción CultureNotFoundException. Los criterios de ordenación alternativos admitidos por .NET Framework se muestran en la tabla siguiente.

Nombre de referencia cultural

Idioma, país o región

Nombre de ordenación predeterminada y LCID

Nombre de ordenación alternativa y LCID

zh-HK

Chino - Zona administrativa especial de Hong Kong

Predeterminada: 0x00000c04

zh-HK_stroke: 0x00020c04

ja-JP

Japonés - Japón

Predeterminada: 0x00000411

ja-JP_unicod: 0x00010411

ko-KR

Coreano - Corea

Predeterminada: 0x00000412

ko-KR_unicod: 0x00010412

Uso reducido de identificadores de configuración regional

En .NET Framework 4, los métodos ToString y ToString usan los nombres de referencia cultural sin LCID en todas las referencias culturales. Por ejemplo, .NET Framework 4 devuelve "en-US CompareInfo - en-US" en lugar de "en-US CompareInfo – 1033", que era el valor devuelto en las versiones anteriores de .NET Framework.

Propiedades de referencias culturales neutras

Las versiones anteriores de .NET Framework producían una excepción si las aplicaciones intentaban tener acceso a las propiedades de referencias culturales neutras, como DateTimeFormatInfo.FirstDayOfWeek. En .NET Framework 4, las propiedades de las referencias culturales neutras devuelven valores que reflejan la referencia cultural que es más dominante en esa referencia cultural neutra. Por ejemplo, la referencia cultural neutra del francés recupera los valores de la mayoría de sus propiedades a partir de Francés (Francia). La propiedad FirstDayOfWeek devuelve DayOfWeek.Monday, que refleja el valor de esa propiedad en la referencia cultural Francés (Francia).

Sin embargo, algunas propiedades (como el nombre del idioma) tienen valores que difieren de la referencia cultural dominante. Por ejemplo, el nombre de idioma de la referencia cultural neutra del noruego es Noruego, mientras que el nombre de idioma de la referencia cultural específica del noruego Bokmål (Noruega) es Noruego (Bokmål).

En .NET Framework 4, algunas propiedades y métodos de referencias culturales neutras devuelven valores que reflejan referencias culturales concretas en lugar de referencias culturales neutras. La propiedad KeyboardLayoutId y el método GetConsoleFallbackUICulture de la clase CultureInfo constituyen dos ejemplos de este cambio:

  • Cambios de valor de KeyboardLayoutId:

    Nombre de referencia cultural

    Versión 3.5

    Versión 4

    ar

    1

    1025

    es

    10

    1034

    fr

    12

    1036

    zh-CHS

    4

    2052

  • Cambios de valor de GetConsoleFallbackUICulture:

    Nombre de referencia cultural

    Versión 3.5

    Versión 4

    af

    af

    af-ZA

    de

    de

    de-DE

    en

    en

    en-US

    ja

    ja

    ja-JP

Cambios de las referencias culturales personalizadas

Las referencias culturales de reemplazo neutras creadas por .NET Framework 2.0 no se cargan en .NET Framework 4.

Cuando registra una referencia cultural de reemplazo utilizando la clase CultureAndRegionInfoBuilder, la información invalidada de la referencia cultural personalizada no estará inmediatamente disponible para el proceso que creó la referencia cultural personalizada. Sin embargo, los procesos que se inicien después de registrar esta referencia cultural personalizada podrán leer la información invalidada.

Características que no han cambiado

La información de texto, la codificación, la funcionalidad de calendario y las características de nombre de dominio internacionalizado (IDN) no han cambiado en .NET Framework 4. Estas áreas siguen funcionando como lo hacían antes.

Historial de cambios

Fecha

Historial

Motivo

Mayo de 2010

Se ha indicado que la restauración de los criterios de ordenación y comparación heredados dependen de sort00001000.dll.

Corrección de errores de contenido.