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