Kształty cyfr
Arabski i wiele innych języków mają klasyczne kształty liczb, które różnią się od konwencjonalnych cyfr zachodnich najczęściej używanych na komputerach. Aby uniknąć niejednoznaczności w nazewnictwie tych kształtów, ten dokument używa następujących nazw ze standardu Unicode.
Nazwa Unicode cyfr | Kraj/region, w którym jest używany |
---|---|
Cyfry europejskie | Europa, Ameryka i wiele innych krajów/regionów |
Arabic-Indic cyfry | Kraje arabskie/regiony (chociaż wiele z nich używa cyfr europejskich) |
Inne cyfry krajowe: cyfry indyjne, cyfry tajskie i podobne | Różne kraje/regiony |
Unicode udostępnia oddzielne punkty kodu dla każdego kształtu cyfry. W związku z tym, aby uzyskać dostęp do kształtów cyfr języka specjalnego, aplikacja może używać odpowiednich kodów znaków Unicode dla powyższych cyfr, U+0030 do U+0039. Te kody są zawsze wyświetlane z odpowiednim kształtem, pod warunkiem dostępności czcionek.
Kody znaków Unicode od U+0030 do U+0039 nominalnie reprezentują cyfry europejskie od 0 do 9, ale ich kształt cyfry można zmienić. Interfejsy API GDI i DirectWrite tekstu udostępniają mechanizmy kontroli tego zachowania przez aplikacje. (Zobacz na przykład ScriptApplyDigitSubstitution lub IDWriteTextAnalysisSink::SetNumberSubstitution.) Zachowanie niektórych kontrolek powłoki i struktur interfejsu użytkownika może reagować na ustawienia regionalne użytkownika w celu zastąpienia cyfry; LOCALE_IDIGITSUBSTITUTION LCTYPE można użyć do uzyskania domyślnych ustawień podstawienia cyfr dla różnych ustawień regionalnych lub ustawień pulpitu bieżącego użytkownika w celu zastąpienia cyfry.
Cyfry natywne
Cyfry natywne to kształty cyfr wybrane przez użytkownika w arkuszu właściwości Liczba w obszarze opcji regionalnych i językowych panelu sterowania. Aby znaleźć prezentację cyfry preferowaną przez użytkownika, aplikacja używa GetLocaleInfo lub getLocaleInfoEx funkcji z stałą LOCALE_SNATIVEDIGITS reprezentującą informacje regionalne.
Nuta
Zazwyczaj kody cyfrowe Unicode są generowane w rutynowych systemach operacyjnych środowiska uruchomieniowego. W związku z tym typowe systemy operacyjne środowiska uruchomieniowego muszą zostać uaktualnione, aby aplikacja mogła odpowiednio sprawdzić LOCALE_SNATIVEDIGITS.
Podstawianie cyfr
Aplikacja może użyć podstawienia cyfr, aby poinformować system operacyjny, jak drukować cyfry U+0030 do U+0039. Stała LOCALE_IDIGITSUBSTITUTION steruje tą operacją.
Kształtowanie cyfr dla pojedynczej funkcji
Funkcje ExtTextOut, GetCharacterPlacementi GCP_RESULTS mają flagi, które zarządzają zastępowaniem kodów Unicode U+0030 do U+0039 przez czas trwania wywołania funkcji. Te flagi zastępują ustawienia regionalne w Panelu sterowania, ale nie resetują ustawień. Ponadto nie zastępują kodów Unicode NADS i NODS. Dostępne są następujące flagi.
Flagi | Używane cyfry | Używane w |
---|---|---|
ETO_NUMERICSLATIN | Cyfry europejskie | ExtTextOut |
ETO_NUMERICSLOCAL | Cyfry odpowiednie dla ustawień regionalnych | ExtTextOut |
GCP_NUMERICSLATIN | Cyfry europejskie | GetCharacterPlacement |
GCP_NUMERICSLOCAL | Cyfry odpowiednie dla ustawień regionalnych | GetCharacterPlacement |
GCPCLASS_LATINNUMBER | Cyfry europejskie | GCP_RESULTS |
GCPCLASS_LOCALNUMBER | Cyfry odpowiednie dla ustawień regionalnych | GCP_RESULTS |
Tematy pokrewne