Forme cifre
L'arabo e molte altre lingue hanno forme classiche per i numeri che sono diversi dalle cifre occidentali convenzionali più spesso usate nei computer. Per evitare ambiguità nella denominazione di queste forme, questo documento usa i nomi seguenti dello standard Unicode.
Nome Unicode delle cifre | Paese/area geografica in cui viene usato |
---|---|
Cifre europee | Europa, America e molti altri paesi/regioni |
Arabic-Indic cifre | Paesi arabi/aree geografiche (anche se molti utilizzano cifre europee) |
Altre cifre nazionali: cifre indic, cifre thai e simili | Vari paesi/aree geografiche |
Unicode fornisce punti di codice separati per ogni forma di cifra. Pertanto, per accedere a forme di cifre di lingua speciali, l'applicazione può usare i codici carattere Unicode pertinenti per le cifre precedenti, da U+0030 a U+0039. Questi codici vengono sempre visualizzati con la forma appropriata, in base alla disponibilità del carattere.
I codici carattere Unicode da U+0030 a U+0039 rappresentano nominalemente le cifre europee da 0 a 9, ma la loro forma di cifra può essere modificata. Le API di testo GDI e DirectWrite forniscono meccanismi per le applicazioni per controllare questo comportamento. Vedere, ad esempio, ScriptApplyDigitSubstitution o IDWriteTextAnalysisSink::SetNumberSubstitution. Il comportamento in alcuni controlli shell e framework dell'interfaccia utente può rispondere alle impostazioni locali dell'utente per la sostituzione delle cifre; il LOCALE_IDIGITSUBSTITUTION LCTYPE può essere usato per ottenere le impostazioni di sostituzione delle cifre predefinite per impostazioni locali diverse o le impostazioni desktop dell'utente corrente per la sostituzione delle cifre.
Cifre native
Le cifre native sono le forme di cifra scelte dall'utente nella finestra delle proprietà Numero nella parte delle opzioni internazionali e della lingua del Pannello di controllo. Per trovare la presentazione delle cifre preferita dall'utente, l'applicazione usa la funzione GetLocaleInfo o GetLocaleInfoEx con la costante LOCALE_SNATIVEDIGITS che rappresenta le informazioni sulle impostazioni locali.
Nota
In genere, i codici di cifra Unicode vengono generati nelle routine del sistema operativo di runtime. Pertanto, i sistemi operativi Common Runtime devono essere aggiornati affinché l'applicazione controlli LOCALE_SNATIVEDIGITS in modo appropriato.
Sostituzione cifre
L'applicazione può usare la sostituzione delle cifre per indicare al sistema operativo come stampare cifre da U+0030 a U+0039. La costante LOCALE_IDIGITSUBSTITUTION controlla questa operazione.
Digit Shaping per una singola funzione
Le funzioni ExtTextOut, GetCharacterPlacemente GCP_RESULTS hanno flag che regolano la sostituzione dei codici Unicode da U+0030 a U+0039 per la durata della chiamata di funzione. Questi flag sostituiscono le impostazioni internazionali nel Pannello di controllo, ma non reimpostano le impostazioni. Inoltre, non eseguono l'override dei codici Unicode NADS e NODS. Sono disponibili i flag seguenti.
Bandiere | Cifre usate | Usato in |
---|---|---|
ETO_NUMERICSLATIN | Cifre europee | ExtTextOut |
ETO_NUMERICSLOCAL | Cifre appropriate per le impostazioni locali | ExtTextOut |
GCP_NUMERICSLATIN | Cifre europee | GetCharacterPlacement |
GCP_NUMERICSLOCAL | Cifre appropriate per le impostazioni locali | GetCharacterPlacement |
GCPCLASS_LATINNUMBER | Cifre europee | GCP_RESULTS |
GCPCLASS_LOCALNUMBER | Cifre appropriate per le impostazioni locali | GCP_RESULTS |
Argomenti correlati