Bagikan melalui


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
MUI_LANGUAGE_ID
Ambil string bahasa dalam format pengidentifikasi bahasa .
MUI_LANGUAGE_NAME
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
MUI_FULL_LANGUAGE
Bahasa ini sepenuhnya dilokalkan.
MUI_PARTIAL_LANGUAGE
Bahasa ini dilokalkan sebagian.
MUI_LIP_LANGUAGE
Bahasa ini adalah bahasa LIP.
 

Selain itu, pdwAttributes menyertakan satu atau kedua bendera berikut, sebagaimana mewajarkan.

Nilai Makna
MUI_LANGUAGE_INSTALLED
Bahasa terinstal pada komputer ini.
MUI_LANGUAGE_LICENSED
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.
Jika GetLastError mengembalikan kode kesalahan lainnya, parameter pcchFallbackLanguages dan pdwAttributes tidak terdefinisi.

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 Lang1, aplikasi melewati pwmszLanguage sebagai "Lang1\0\0". Saat kembali dari fungsi, pwszFallbackLanguages diatur ke "Lang2\0Lang3\0Lang4\0\0". Perhatikan bahwa urutan daftar ini menunjukkan bahwa Lang2 adalah bahasa fallback default.

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.
Kode kesalahan ERROR_OBJECT_NAME_NOT_FOUND terjadi jika pwmszLanguage dapat diurai , tetapi tidak valid. Kode mungkin juga dikembalikan untuk pengidentifikasi lokal yang tidak valid, atau jika bahasa pertama dalam daftar input bukan bahasa yang diinstal, atau jika bahasa yang sepenuhnya dilokalkan telah menentukan bahasa fallback.

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

Lihat juga

EnumUILanguages

GetFileMUIInfo

Antarmuka Pengguna Multibahasa

Fungsi Antarmuka Pengguna Multibahasa