Partilhar via


Formas de dígitos

O árabe e muitas outras línguas têm formas clássicas para números que são diferentes dos dígitos ocidentais convencionais mais usados em computadores. Para evitar ambiguidade na nomeação dessas formas, este documento usa os seguintes nomes do padrão Unicode.

Nome Unicode dos dígitos País/região onde usado
Algarismos europeus Europa, Américas e muitos outros países/regiões
Arabic-Indic dígitos Países/regiões árabes (embora muitos usem dígitos europeus)
Outros algarismos nacionais: algarismos índicos, algarismos tailandeses e similares Vários países/regiões

 

O Unicode fornece pontos de código separados para cada forma de dígito. Assim, para acessar formas de dígitos de idiomas especiais, seu aplicativo pode usar os códigos de caracteres Unicode relevantes para os dígitos acima, U+0030 a U+0039. Estes códigos são sempre exibidos com a forma apropriada, sujeito à disponibilidade de fontes.

Os códigos de caracteres Unicode U+0030 a U+0039 representam nominalmente os dígitos europeus de 0 a 9, mas sua forma de dígito pode ser alterada. As APIs de texto GDI e DirectWrite fornecem mecanismos para que os aplicativos controlem esse comportamento. (Ver, por exemplo, ScriptApplyDigitSubstitution ou IDWriteTextAnalysisSink::SetNumberSubstitution.) O comportamento em alguns controles de shell e estruturas de interface do usuário pode responder às configurações de localidade do usuário para substituição de dígitos; o LOCALE_IDIGITSUBSTITUTION LCTYPE pode ser usado para obter configurações padrão de substituição de dígitos para diferentes localidades ou as configurações da área de trabalho do usuário atual para substituição de dígitos.

Dígitos nativos

Os dígitos nativos são as formas de dígitos escolhidas pelo usuário na folha de propriedades Número na parte de opções regionais e de idioma do Painel de Controle. Para encontrar a apresentação de dígitos preferida pelo usuário, seu aplicativo usa a GetLocaleInfo ou função GetLocaleInfoEx com a constante LOCALE_SNATIVEDIGITS que representa as informações de localidade.

Observação

Normalmente, os códigos de dígitos Unicode são gerados em rotinas do sistema operacional em tempo de execução. Portanto, os sistemas operacionais comuns de tempo de execução devem ser atualizados para que o aplicativo inspecione LOCALE_SNATIVEDIGITS adequadamente.

 

Substituição de dígitos

O aplicativo pode usar a substituição de dígitos para dizer ao sistema operacional como imprimir dígitos U+0030 a U+0039. O LOCALE_IDIGITSUBSTITUTION constante controla esta operação.

Modelagem de dígitos para uma única função

As funções ExtTextOut, GetCharacterPlacemente GCP_RESULTS têm sinalizadores que regem a substituição dos códigos Unicode U+0030 a U+0039 durante a chamada de função. Esses sinalizadores substituem as configurações regionais no Painel de Controle, mas não redefinem as configurações. Além disso, eles não substituem os códigos Unicode NADS e NODS. Os seguintes sinalizadores estão disponíveis.

Bandeiras Algarismos utilizados Utilizado em
ETO_NUMERICSLATIN Algarismos europeus ExtTextOut
ETO_NUMERICSLOCAL Dígitos apropriados para a localidade ExtTextOut
GCP_NUMERICSLATIN Algarismos europeus GetCharacterPlacement
GCP_NUMERICSLOCAL Dígitos apropriados para a localidade GetCharacterPlacement
GCPCLASS_LATINNUMBER Algarismos europeus GCP_RESULTS
GCPCLASS_LOCALNUMBER Dígitos apropriados para a localidade GCP_RESULTS

 

Sobre a de Suporte Nacional de Idiomas

GetLocaleInfo

GetLocaleInfoEx