Formas de Dígito

O árabe e muitas outras línguas têm formas clássicas para números diferentes dos dígitos ocidentais convencionais mais frequentemente usados em computadores. Para evitar ambiguidade ao nomear essas formas, este documento usa os nomes a seguir do padrão Unicode.

Nome Unicode dos dígitos País/região onde usado
Dígitos 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 dígitos nacionais: dígitos índices, dígitos 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 especiais de dígito de linguagem, seu aplicativo pode usar os códigos de caractere Unicode relevantes para os dígitos acima, U+0030 a U+0039. Esses códigos são sempre exibidos com a forma apropriada, sujeitos à disponibilidade da fonte.

Os códigos de caractere 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. (Consulte, 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 de substituição de dígito padrão para localidades diferentes ou as configurações da área de trabalho do usuário atual para substituição de dígito.

Dígitos Nativos

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

Observação

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

 

Substituição de dígito

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

Formatação de dígito para uma única função

As funções ExtTextOut, GetCharacterPlacement e GCP_RESULTS têm sinalizadores que regem a substituição de 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 sinalizadores a seguir estão disponíveis.

Flags Dígitos usados Usado em
ETO_NUMERICSLATIN Dígitos europeus Exttextout
ETO_NUMERICSLOCAL Dígitos apropriados para a localidade Exttextout
GCP_NUMERICSLATIN Dígitos europeus GetCharacterPlacement
GCP_NUMERICSLOCAL Dígitos apropriados para a localidade GetCharacterPlacement
GCPCLASS_LATINNUMBER Dígitos europeus GCP_RESULTS
GCPCLASS_LOCALNUMBER Dígitos apropriados para a localidade GCP_RESULTS

 

Sobre o Suporte a Idiomas Nacionais

Getlocaleinfo

Getlocaleinfoex