Bentuk Digit
Bahasa Arab dan banyak bahasa lainnya memiliki bentuk klasik untuk angka yang berbeda dari digit barat konvensional yang paling sering digunakan pada komputer. Untuk menghindari ambiguitas dalam menamai bentuk-bentuk ini, dokumen ini menggunakan nama berikut dari standar Unicode.
Nama unicode digit | Negara/wilayah tempat digunakan |
---|---|
Digit Eropa | Eropa, Amerika, dan banyak negara/wilayah lainnya |
Arabic-Indic digit | Negara/wilayah Arab (meskipun banyak yang menggunakan digit Eropa) |
Digit nasional lainnya: Digit indeks, digit Thailand, dan sesukanya | Berbagai negara/wilayah |
Unicode menyediakan titik kode terpisah untuk setiap bentuk digit. Dengan demikian, untuk mengakses bentuk digit bahasa khusus, aplikasi Anda dapat menggunakan kode karakter Unicode yang relevan untuk digit di atas, U+0030 hingga U+0039. Kode-kode ini selalu ditampilkan dengan bentuk yang sesuai, tergantung pada ketersediaan font.
Kode karakter Unicode U+0030 hingga U+0039 secara nominal mewakili digit Eropa 0 sampai 9, tetapi bentuk digitnya dapat diubah. API teks GDI dan DirectWrite menyediakan mekanisme bagi aplikasi untuk mengontrol perilaku ini. (Lihat, misalnya, ScriptApplyDigitSubstitution atau IDWriteTextAnalysisSink::SetNumberSubstitution.) Perilaku dalam beberapa kontrol shell dan kerangka kerja antarmuka pengguna dapat merespons pengaturan lokal pengguna untuk penggantian digit; LOCALE_IDIGITSUBSTITUTION LCTYPE dapat digunakan untuk mendapatkan pengaturan substitusi digit default untuk lokal yang berbeda atau pengaturan desktop pengguna saat ini untuk penggantian digit.
Digit asli adalah bentuk digit yang dipilih oleh pengguna di lembar properti Angka di bagian opsi regional dan bahasa dari Panel Kontrol. Untuk menemukan digit presentasi yang disukai oleh pengguna, aplikasi Anda menggunakan fungsi GetLocaleInfo atau GetLocaleInfoEx dengan konstanta LOCALE_SNATIVEDIGITS yang mewakili informasi lokal.
Catatan
Biasanya, kode digit Unicode dihasilkan dalam rutinitas sistem operasi runtime. Oleh karena itu, sistem operasi runtime umum harus ditingkatkan agar aplikasi memeriksa LOCALE_SNATIVEDIGITS dengan tepat.
Aplikasi dapat menggunakan substitusi digit untuk memberi tahu sistem operasi cara mencetak digit U+0030 hingga U+0039. Konstanta LOCALE_IDIGITSUBSTITUTION mengontrol operasi ini.
Fungsi ExtTextOut, GetCharacterPlacement, dan GCP_RESULTS memiliki bendera yang mengatur penggantian kode Unicode U+0030 hingga U+0039 selama panggilan fungsi. Bendera ini mengambil alih pengaturan regional di Panel Kontrol, tetapi tidak mengatur ulang pengaturan. Selain itu, mereka tidak mengambil alih NADS dan NODS kode Unicode. Bendera berikut tersedia.
Bendera | Digit yang digunakan | Digunakan dalam |
---|---|---|
ETO_NUMERICSLATIN | Digit Eropa | ExtTextOut |
ETO_NUMERICSLOCAL | Digit yang sesuai dengan lokal | ExtTextOut |
GCP_NUMERICSLATIN | Digit Eropa | GetCharacterPlacement |
GCP_NUMERICSLOCAL | Digit yang sesuai dengan lokal | GetCharacterPlacement |
GCPCLASS_LATINNUMBER | Digit Eropa | GCP_RESULTS |
GCPCLASS_LOCALNUMBER | Digit yang sesuai dengan lokal | GCP_RESULTS |