Bagikan melalui


Nama Lokal UCRT, Bahasa, dan string Negara/Wilayah

Anda dapat mengatur locale argumen kesetlocale fungsi , , _wsetlocale_create_locale, dan _wcreate_locale dalam beberapa cara. Lokal dapat diatur dengan menggunakan nama lokal, bahasa, kode negara/wilayah, dan halaman kode yang didukung oleh Windows NLS API. Argumen locale mengambil salah satu formulir berikut:

locale :: "locale-name"
 | "language[_country-region[.code-page]]"
 | ".code-page"
 | "C"
 | ""
 | NOL

Formulir locale-name adalah string pendek yang distandarisasi IETF; misalnya, en-US untuk bahasa Inggris (Amerika Serikat) atau bs-Cyrl-BA untuk Bahasa Bosnia (Sirilik, Bosnia dan Herzegovina). Bentuk-bentuk ini lebih disukai. Untuk daftar nama lokal yang didukung menurut versi sistem operasi Windows, lihat kolom Tag bahasa tabel di Lampiran A: Perilaku Produk di [MS-LCID]: Referensi Pengidentifikasi Kode Bahasa Windows (LCID). Sumber daya ini mencantumkan bagian bahasa, skrip, dan wilayah yang didukung dari nama lokal. Untuk informasi tentang nama lokal yang didukung yang memiliki urutan pengurutan non-default, lihat kolom Nama lokal di Pengurutan pengidentifikasi urutan. Di bawah Windows 10 atau yang lebih baru, nama lokal yang sesuai dengan tag bahasa BCP-47 yang valid diizinkan. Misalnya, jp-US adalah tag BCP-47 yang valid, tetapi secara efektif hanya US untuk fungsionalitas lokal.

Bahasa[_country-region[.kode-halaman]] formulir disimpan dalam pengaturan lokal untuk kategori ketika string bahasa, atau string bahasa dan string negara atau wilayah, digunakan untuk membuat lokal. Kumpulan string bahasa yang didukung dijelaskan dalam String bahasa, dan daftar string negara dan wilayah yang didukung tercantum dalam string Negara/Wilayah. Jika bahasa yang ditentukan tidak terkait dengan negara atau wilayah yang ditentukan, bahasa default untuk negara atau wilayah yang ditentukan disimpan dalam pengaturan lokal. Kami tidak merekomendasikan formulir ini untuk string lokal yang disematkan dalam kode atau diserialisasikan ke penyimpanan: String ini lebih mungkin diubah oleh pembaruan sistem operasi daripada formulir nama lokal.

Halaman kode adalah halaman kode ANSI/OEM yang terkait dengan lokal. Halaman kode ditentukan untuk Anda saat Anda menentukan lokal berdasarkan bahasa atau berdasarkan bahasa dan negara/wilayah saja. Nilai .ACP khusus menentukan halaman kode ANSI untuk negara/wilayah. Nilai .OCP khusus menentukan halaman kode OEM untuk negara/wilayah. Misalnya, jika Anda menentukan "Greek_Greece.ACP" sebagai lokal, lokal disimpan sebagai Greek_Greece.1253 (halaman kode ANSI untuk Bahasa Yunani), dan jika Anda menentukan "Greek_Greece.OCP" sebagai lokal, itu disimpan sebagai Greek_Greece.737 (halaman kode OEM untuk Bahasa Yunani). Untuk informasi selengkapnya tentang halaman kode, lihat Halaman kode. Untuk daftar halaman kode yang didukung di Windows, lihat Pengidentifikasi halaman kode.

Jika Anda hanya menggunakan halaman kode untuk menentukan lokal, bahasa dan negara/wilayah default pengguna seperti yang dilaporkan oleh GetUserDefaultLocaleName digunakan. Misalnya, jika Anda menentukan ".1254" (ANSI Turki) sebagai lokal untuk pengguna yang dikonfigurasi untuk bahasa Inggris (Amerika Serikat), lokal yang disimpan adalah English_United States.1254. Kami tidak merekomendasikan formulir ini, karena dapat menyebabkan perilaku yang tidak konsisten.

locale Nilai C argumen menentukan lingkungan yang sesuai dengan ANSI minimal untuk terjemahan C. Lokal C mengasumsikan bahwa setiap char jenis data adalah 1 byte dan nilainya selalu kurang dari 256. Jika locale menunjuk ke string kosong, lokal adalah lingkungan asli yang ditentukan implementasi.

Anda dapat menentukan semua kategori lokal secara bersamaan untuk setlocale fungsi dan _wsetlocale dengan menggunakan LC_ALL kategori . Semua kategori dapat diatur ke lokal yang sama, atau Anda dapat mengatur setiap kategori satu per satu dengan menggunakan argumen lokal yang memiliki formulir ini:

LC-ALL-specifier :: locale
 | [LC_COLLATE=locale][;LC_CTYPE=locale][;LC_MONETARY=locale][;LC_NUMERIC=locale][][;LC_TIME=locale]

Anda dapat menentukan beberapa jenis kategori, dipisahkan oleh titik koma. Jenis kategori yang tidak ditentukan menggunakan pengaturan lokal saat ini. Misalnya, cuplikan kode ini mengatur lokal saat ini untuk semua kategori ke de-DE, lalu mengatur kategori LC_MONETARY ke en-GB dan LC_TIME ke es-ES:

_wsetlocale(LC_ALL, L"de-DE");
_wsetlocale(LC_ALL, L"LC_MONETARY=en-GB;LC_TIME=es-ES");

Dukungan UTF-8

Dukungan UTF-8 dapat diaktifkan dengan menggunakan halaman kode UTF-8 di string lokal Anda. Untuk informasi selengkapnya, lihat bagian dukungan UTF-8 dari setlocale.

Lihat juga

Referensi pustaka runtime C
_get_current_locale
setlocale, _wsetlocale
_create_locale, _wcreate_locale
String bahasa
String Negara/Wilayah