Fungsi GetUILanguageInfo (winnls.h)
Mengambil berbagai informasi tentang bahasa UI yang diinstal:
- Apakah bahasa terinstal?
- Apakah pengguna saat ini berlisensi untuk menggunakan bahasa tersebut?
- Apakah bahasa sepenuhnya dilokalkan? Dilokalkan sebagian? Bagian dari Paket Penginstalan Bahasa (LIP)?
- Jika sebagian dilokalkan atau bagian dari LIP:
- Apa bahasa fallback-nya?
- Jika bahasa fallback tersebut adalah bahasa yang dilokalkan sebagian, apa dasarnya?
- Apa bahasa fallback defaultnya?
Sintaks
BOOL GetUILanguageInfo(
[in] DWORD dwFlags,
[in] PCZZWSTR pwmszLanguage,
[out, optional] PZZWSTR pwszFallbackLanguages,
[in, out, optional] PDWORD pcchFallbackLanguages,
[out] PDWORD pAttributes
);
Parameter
[in] dwFlags
Bendera yang menentukan format bahasa yang ditentukan. Bendera saling eksklusif, dan defaultnya adalah MUI_LANGUAGE_NAME.
Nilai | Makna |
---|---|
|
Ambil string bahasa dalam format pengidentifikasi bahasa . |
|
Ambil string bahasa dalam format nama bahasa . |
[in] pwmszLanguage
Arahkan ke bahasa yang fungsinya adalah untuk mengambil informasi. Parameter ini menunjukkan daftar pengidentifikasi bahasa atau nama bahasa yang dibatasi null yang diurutkan, tergantung pada pengaturan bendera. Untuk informasi tentang penggunaan parameter ini, lihat bagian Keterangan.
[out, optional] pwszFallbackLanguages
Penunjuk ke buffer di mana fungsi ini mengambil daftar bahasa fallback yang dibatasi null yang diurutkan, diformat seperti yang didefinisikan oleh pengaturan untuk dwFlags. Daftar ini berakhir dengan dua karakter null.
Atau jika parameter ini diatur ke NULL dan pcchLanguagesBuffer diatur ke 0, fungsi mengambil ukuran buffer bahasa yang diperlukan di pcchLanguagesBuffer. Ukuran yang diperlukan mencakup dua karakter null.
[in, out, optional] pcchFallbackLanguages
Penunjuk ke ukuran, dalam karakter, untuk buffer bahasa yang ditunjukkan oleh pwszFallbackLanguages. Saat pengembalian berhasil dari fungsi, parameter berisi ukuran buffer bahasa yang diambil.
Atau jika parameter ini diatur ke 0 dan pwszLanguagesBuffer diatur ke NULL, fungsi mengambil ukuran buffer bahasa yang diperlukan di pcchLanguagesBuffer.
[out] pAttributes
Penunjuk ke bendera yang menunjukkan atribut daftar bahasa input. Fungsi ini selalu mengambil bendera yang mencirikan bahasa terakhir yang tercantum.
Nilai | Makna |
---|---|
|
Bahasa ini sepenuhnya dilokalkan. |
|
Bahasa ini dilokalkan sebagian. |
|
Bahasa ini adalah bahasa LIP. |
Selain itu, pdwAttributes menyertakan satu atau kedua bendera berikut, sebagaimana mewajarkan.
Nilai | Makna |
---|---|
|
Bahasa terinstal pada komputer ini. |
|
Bahasa ini dilisensikan dengan tepat untuk pengguna saat ini. |
Nilai kembali
Mengembalikan TRUE jika berhasil atau FALSE sebaliknya. Untuk mendapatkan informasi kesalahan yang diperluas, aplikasi dapat memanggil GetLastError, yang dapat mengembalikan kode kesalahan berikut:
- ERROR_INSUFFICIENT_BUFFER. Ukuran buffer yang disediakan tidak cukup besar, atau salah diatur ke NULL.
- ERROR_INVALID_PARAMETER. Salah satu nilai parameter tidak valid. Untuk informasi selengkapnya, lihat Keterangan.
- ERROR_OBJECT_NAME_NOT_FOUND. Nama objek yang ditentukan tidak ditemukan, atau tidak valid, atau bahasa pertama dalam daftar input bukan bahasa yang terinstal. Untuk informasi selengkapnya, lihat Keterangan.
Keterangan
MUI_LANGUAGE_NAME direkomendasikan daripada MUI_LANGUAGE_ID karena memungkinkan fungsi untuk melakukan pekerjaan yang lebih baik dalam menangani bahasa LIP yang tidak sesuai dengan lokal yang telah ditentukan sebelumnya, tetapi sebaliknya sesuai dengan lokal tambahan. Bahasa LIP yang sesuai dengan lokal yang telah ditentukan sebelumnya ditangani sama seperti bahasa non-LIP.
Jika bendera MUI_LANGUAGE_ID ditentukan, string bahasa yang disediakan harus
gunakan pengidentifikasi bahasa heksadesimal yang tidak menyertakan 0x di depannya, dan panjangnya 4 karakter.
Misalnya, en-US harus diteruskan sebagai "0409" dan en sebagai "0009". String bahasa yang dikembalikan akan berada di
format yang sama.
Ketika MUI_LANGUAGE_ID ditentukan, dan jika ada bahasa seperti itu dalam daftar bahasa UI pilihan pengguna, hanya boleh ada satu bahasa seperti itu dalam daftar. Bahasa tersebut dapat ditentukan dalam pwmszLanguage sebagai "1400", yang sesuai dengan nilai heksadesimal LOCALE_CUSTOM_UI_DEFAULT. Tidak ada bahasa lain yang dapat ditentukan menggunakan MUI_LANGUAGE_ID. Menggunakan "1000", yang sesuai dengan nilai heksadesimal LOCALE_CUSTOM_UNSPECIFIED, dalam string yang ditunjukkan oleh pwmszLanguage akan menghasilkan kode ERROR_INVALID_PARAMETER.
Bahasa yang dilokalkan sebagian dapat memiliki bahasa fallback yang dilokalkan sebagian, memerlukan panggilan berulang ke GetUILanguageInfo untuk mendapatkan informasi lengkap. Pertimbangkan kasus bahasa Lang1 yang dilokalkan sebagian yang menawarkan pilihan tiga bahasa fallback. Bahasa fallback Lang3 dilokalkan sebagian, dan menawarkan pilihan dua bahasa fallback. Dependensinya adalah sebagai berikut, dengan fallback default yang tercantum terlebih dahulu:
- Bahasa Lang1
- Bahasa Lang2
- Bahasa Lang3
- Bahasa Lang5
- Bahasa Lang6
- Bahasa Lang4
Untuk mendapatkan bahasa fallback Lang3 sehubungan dengan Lang1, aplikasi lolos di pwmszLanguage sebagai "lang1\0\lang3\0\0". Saat kembali dari fungsi, pwszFallbackLanguages diatur ke "Lang5\0Lang6\0\0".
Fungsi ini mengembalikan ERROR_INVALID_PARAMETER untuk salah satu hal berikut:
- pwmszLanguagenull atau kosong.
- Baik MUI_LANGUAGE_ID maupun MUI_LANGUAGE_NAME diatur.
- Setiap bendera selain MUI_LANGUAGE_ID atau MUI_LANGUAGE_NAME diatur.
- pcchFallbackLanguages lebih besar dari 0 tetapi pwszFallbackLanguagesadalah NULL.
- pwmszLanguage tidak dapat diurai sebagai buffer multi-string pengidentifikasi bahasa atau nama bahasa, tergantung pada pengaturan bendera.
Tanda Tangan C#
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean GetUILanguageInfo(
System.UInt32 dwFlags,
System.String pwmszLanguage,
System.IntPtr pwszFallbackLanguages,
ref System.UInt32 pcchFallbackLanguages,
ref System.UInt32 pdwAttributes
);
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
Server minimum yang didukung | Windows Server 2008 [hanya aplikasi desktop] |
Target Platform | Windows |
Header | winnls.h (termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |