Formas de dígitos

El árabe y muchos otros idiomas tienen formas clásicas para números que son diferentes de los dígitos occidentales convencionales que se usan con más frecuencia en los equipos. Para evitar ambigüedad en la nomenclatura de estas formas, en este documento se usan los siguientes nombres del estándar Unicode.

Nombre Unicode de los dígitos País o región donde se usa
Dígitos europeos Europa, las Américas y muchos otros países o regiones
Arabic-Indic dígitos Países o regiones árabes (aunque muchos usan dígitos europeos)
Otros dígitos nacionales: dígitos indicos, dígitos tailandeses y similares Varios países o regiones

 

Unicode proporciona puntos de código independientes para cada forma de dígito. Por lo tanto, para acceder a formas de dígitos de idioma especiales, la aplicación puede usar los códigos de caracteres Unicode pertinentes para los dígitos anteriores, U+0030 a U+0039. Estos códigos siempre se muestran con la forma adecuada, sujeto a la disponibilidad de fuentes.

Los códigos de caracteres Unicode U+0030 a U+0039 representan nominalmente los dígitos europeos del 0 al 9, pero su forma de dígito se puede modificar. Las API de texto GDI y DirectWrite proporcionan mecanismos para que las aplicaciones controlen este comportamiento. (Vea, por ejemplo, ScriptApplyDigitSubstitution o IDWriteTextAnalysisSink::SetNumberSubstitution). El comportamiento de algunos controles de shell y marcos de interfaz de usuario puede responder a la configuración regional del usuario para la sustitución de dígitos; el LOCALE_IDIGITSUBSTITUTION LCTYPE se puede usar para obtener la configuración predeterminada de sustitución de dígitos para diferentes configuraciones regionales o la configuración de escritorio del usuario actual para la sustitución de dígitos.

Dígitos nativos

Los dígitos nativos son las formas de dígito elegidas por el usuario en la hoja de propiedades Number de la parte de opciones regionales y de idioma del Panel de control. Para buscar la presentación de dígitos preferida por el usuario, la aplicación usa la función GetLocaleInfo o GetLocaleInfoEx con la constante LOCALE_SNATIVEDIGITS que representa la información de configuración regional.

Nota

Normalmente, los códigos de dígito Unicode se generan en rutinas del sistema operativo en tiempo de ejecución. Por lo tanto, se deben actualizar los sistemas operativos de Common Runtime para que la aplicación inspeccione LOCALE_SNATIVEDIGITS correctamente.

 

Sustitución de dígitos

La aplicación puede usar la sustitución de dígitos para indicar al sistema operativo cómo imprimir dígitos U+0030 a U+0039. La LOCALE_IDIGITSUBSTITUTION constante controla esta operación.

Modelado de dígitos para una sola función

Las funciones ExtTextOut, GetCharacterPlacement y GCP_RESULTS tienen marcas que rigen la sustitución de códigos Unicode U+0030 a U+0039 mientras dure la llamada a la función. Estas marcas invalidan la configuración regional en el Panel de control, pero no restablecen la configuración. Además, no invalidan los códigos Unicode NADS y NODS. Están disponibles las marcas siguientes.

Marcas Dígitos usados Se usa en
ETO_NUMERICSLATIN Dígitos europeos ExtTextOut
ETO_NUMERICSLOCAL Dígitos adecuados para la configuración regional ExtTextOut
GCP_NUMERICSLATIN Dígitos europeos GetCharacterPlacement
GCP_NUMERICSLOCAL Dígitos adecuados para la configuración regional GetCharacterPlacement
GCPCLASS_LATINNUMBER Dígitos europeos GCP_RESULTS
GCPCLASS_LOCALNUMBER Dígitos adecuados para la configuración regional GCP_RESULTS

 

Acerca de la compatibilidad con idiomas nacionales

GetLocaleInfo

GetLocaleInfoEx