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 indic, 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 de sustitución de dígitos predeterminada 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 Número en 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 el GetLocaleInfo o función getLocaleInfoEx con la constante LOCALE_SNATIVEDIGITS que representa la información de configuración regional.
Nota
Normalmente, los códigos de dígitos Unicode se generan en rutinas del sistema operativo en tiempo de ejecución. Por lo tanto, los sistemas operativos de Common Runtime deben actualizarse 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 constante LOCALE_IDIGITSUBSTITUTION controla esta operación.
Modelado de dígitos para una sola función
Las funciones ExtTextOut, GetCharacterPlacementy GCP_RESULTS tienen marcas que rigen la sustitución de códigos Unicode U+0030 a U+0039 durante la llamada de 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.
Banderas | 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 |
Temas relacionados