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 |
Tópicos relacionados