ResourceBundle.Control.GetCandidateLocales(String, Locale) Metode

Definisi

Mengembalikan List nilai dari Locales sebagai kandidat lokal untuk baseName dan locale.

[Android.Runtime.Register("getCandidateLocales", "(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/List;", "GetGetCandidateLocales_Ljava_lang_String_Ljava_util_Locale_Handler")]
public virtual System.Collections.Generic.IList<Java.Util.Locale>? GetCandidateLocales(string baseName, Java.Util.Locale locale);
[<Android.Runtime.Register("getCandidateLocales", "(Ljava/lang/String;Ljava/util/Locale;)Ljava/util/List;", "GetGetCandidateLocales_Ljava_lang_String_Ljava_util_Locale_Handler")>]
abstract member GetCandidateLocales : string * Java.Util.Locale -> System.Collections.Generic.IList<Java.Util.Locale>
override this.GetCandidateLocales : string * Java.Util.Locale -> System.Collections.Generic.IList<Java.Util.Locale>

Parameter

baseName
String

nama dasar bundel sumber daya, nama kelas yang sepenuhnya memenuhi syarat

locale
Locale

lokal yang diinginkan bundel sumber daya

Mengembalikan

dari List kandidat Localeuntuk yang diberikan locale

Atribut

Keterangan

Mengembalikan List nilai dari Locales sebagai kandidat lokal untuk baseName dan locale. Metode ini dipanggil oleh ResourceBundle.getBundle metode pabrik setiap kali metode pabrik mencoba menemukan bundel sumber daya untuk target Locale.

Urutan lokal kandidat juga sesuai dengan jalur pencarian sumber daya runtime (juga dikenal sebagai rantai induk), jika bundel sumber daya yang sesuai untuk lokal kandidat ada dan induknya tidak ditentukan oleh bundel sumber daya yang dimuat sendiri. Elemen terakhir dari daftar harus lokal#ROOT root jika diinginkan untuk memiliki bundel dasar sebagai terminal rantai induk.

Jika lokal yang diberikan sama dengan Locale.ROOT (lokal akar), yang List hanya berisi akar Locale harus dikembalikan. Dalam hal ini, ResourceBundle.getBundle metode pabrik hanya memuat bundel dasar sebagai bundel sumber daya yang dihasilkan.

Ini bukan persyaratan untuk mengembalikan yang tidak dapat diubah (tidak dapat dimodifikasi) List. Namun, yang dikembalikan List tidak boleh dimutasi setelah dikembalikan oleh getCandidateLocales.

Implementasi default mengembalikan List yang berisi Localemenggunakan aturan yang dijelaskan di bawah ini. Dalam deskripsi di bawah ini, <em>L</em>, <em>S</em>, <em>C</em> dan <em>V</em> masing-masing mewakili bahasa, skrip, negara, dan varian yang tidak kosong. Misalnya, [<em>L</em>, <em>C</em>] mewakili Locale yang memiliki nilai tidak kosong hanya untuk bahasa dan negara. Formulir <em>L</em>("xx") mewakili nilai bahasa (tidak kosong) adalah "xx". Untuk semua kasus, Localeyang nilai komponen akhirnya adalah string kosong dihilangkan.

<ol><li Untuk input Locale dengan nilai skrip kosong, tambahkan kandidat Localedengan menghilangkan komponen akhir satu per satu seperti>di bawah ini:

<ul><li> [<em>L</em>, <em>C</em>, <em>V</em>] </li li><> [<em>L</em>, <em>C</em>] </li li>>< [<em>L</em>] </li><li<Locale.ROOT>/li></ul></li>

<li>Untuk input Locale dengan nilai skrip yang tidak kosong, tambahkan kandidat Localedengan menghilangkan komponen akhir hingga bahasa, lalu tambahkan kandidat yang dihasilkan dari dengan negara dan varian yang Locale dipulihkan:

<ul><li> [<em>L</em>, <em>S</em>, <em>C</em>, <em>V</em>]</li<>> [<em>L</em>, <em>S</em>, <em>C</em>]</li li>>< [<em>L</em>, <em>S</em>]</li li<>> [<em>L</em>, <em>C</em,><em>V</em>]</li><> [<em>L</em>, <em>C</em>]</li<>> [<em>L</em>]</li>Locale.ROOT<<>/li></ul></li>

<li>Untuk input Locale dengan nilai varian yang terdiri dari beberapa subtag yang dipisahkan oleh garis bawah, hasilkan kandidat Locales dengan menghilangkan subtag varian satu per satu, lalu masukkan setelah setiap kemunculan Locales dengan nilai varian lengkap dalam daftar asli. Misalnya, jika varian terdiri dari dua subtag <em>V1</em> dan <em>V2</em>:

<ul><li> [<em>L</em>, <em>S</em>, <em>C</em>, <em>V1</em>, <em>V2</em>]</li><> [<em>L</em>, <em>S</em>, <em>C</em>, <em>V1</em>]</li<>li> [<em>L</em>, <em>S</em>, <em>C</em]></li><li> [<em>L</em>, <em>S</em>]</li li><> [<em>L</em>, <em>C</em>, <em>V1</em>, <em>V2</em>]</li>>< [<em>L</em>, <em>C</em>, <em>V1</em>]</li li>>< [<em>L</em>, <em C></em>]</li><li> [<em>L</em>]</li><li>Locale.ROOT</li></ul></li>

<li>Kasus khusus untuk Cina. Ketika input Locale memiliki bahasa "zh" (Tionghoa) dan nilai skrip kosong, baik "Hans" (Disederhanakan) atau "Hant" (Tradisional) mungkin disediakan, tergantung pada negara tersebut. Ketika negara itu adalah "CN" (Tiongkok) atau "SG" (Singapura), "Hans" disediakan. Ketika negara itu adalah "HK" (Hong Kong SAR Tiongkok), "MO" (Macau SAR China), atau "TW" (Taiwan), "Hant" disediakan. Untuk semua negara lain atau ketika negara kosong, tidak ada skrip yang disediakan. Misalnya, untuk Locale("zh", "CN") , daftar kandidat adalah: <ul><li> [<em>L</em>("zh"), <em>S</em>("Hans"), <em>C</em>("CN")]</li<>[><em>L</em>("zh"), <em>S</em>("Hans")]</li<>> [<em>L</em>("zh"), em C/em("CN")]/li [em L/em("zh"), em C/em("CN")]/li [em L/em("zh"), <em>C</em>("CN")]</li><> [<em>L</em>("zh")")]</li>Locale.ROOT><</li></ul>

Untuk Locale("zh", "TW"), daftar kandidat adalah: <ul<>li> [<em>L</em>("zh"), <em>S</em>("Hant"), <em>C</em>("TW")]</li>>< [<em>L</em>("zh"), <em>S</em>("Hant")]</li><> [<em>L</em>("zh"), <em>C</em>("TW")]</li><> [<em>L</em>("zh")]/<<Locale.ROOT>li></li></ul></li>

<li>Kasus khusus untuk Norwegia. Keduanya Locale("no", "NO", "NY") dan Locale("nn", "NO") mewakili Nynorsk Norwegia. Ketika bahasa lokal adalah "nn", daftar kandidat standar dihasilkan hingga [<em>L</em>("nn")], lalu kandidat berikut ditambahkan:

<ul li [em L/em>("no"), <em>C</em>("NO"), <em>V</em>("NY")]</li<>> [<em>L</em>("no"), <em>C</em>("NO")]</li>>< [<em>L</em>("no")]</li<>li<Locale.ROOT>/li<>/ul<><>><>

Jika lokal tepat , pertama-tama Locale("no", "NO", "NY")dikonversi ke Locale("nn", "NO") dan kemudian prosedur di atas diikuti.

Selain itu, Java memperlakukan bahasa "tidak" sebagai sinonim dari Bokmå Norwegia; l "nb". Kecuali untuk kasus Locale("no", "NO", "NY") tunggal (ditangani di atas), ketika input Locale memiliki bahasa "tidak" atau "nb", kandidat Localedengan kode bahasa "tidak" dan "nb" diselingi, pertama-tama menggunakan bahasa yang diminta, lalu menggunakan sinonimnya. Misalnya, Locale("nb", "NO", "POSIX") menghasilkan daftar kandidat berikut:

<ul>li [em L</em("nb"), <em>C</em>("NO"), <em>V</em>("POSIX")]</li><> [<em>>L</em>>("no"), <em>C</em>("NO"), <em>V</em>("POSIX")]</li<>> [<em>L</em>("nb"), <em>C</em>("NO")]</li [>><<em>L</em>("no"), <<><em>C</em>("NO")]</li>>< [<em>L</em>("nb")]</li>>< [<em>L</em>("no")]</liLocale.ROOT<<>>/li></ul>

Locale("no", "NO", "POSIX") akan menghasilkan daftar yang sama kecuali bahwa lokal dengan "tidak" akan muncul sebelum lokal yang sesuai dengan "nb".</li></ol>

Implementasi default menggunakan ArrayList implementasi penggantian yang dapat memodifikasi sebelum mengembalikannya ke pemanggil. Namun, subkelas tidak boleh memodifikasinya setelah dikembalikan oleh getCandidateLocales.

Misalnya, jika yang diberikan baseName adalah "Pesan" dan yang diberikan locale adalah Locale("ja",&nbsp;"",&nbsp;"XX"), maka salah satu List dari Locale:

Locale("ja", "", "XX")
                Locale("ja")
                Locale.ROOT

akan ditampilkan. Dan jika bundel sumber daya untuk "ja" dan "" Localeditemukan, maka jalur pencarian sumber daya runtime (rantai induk) adalah:

{@code
                Messages_ja -> Messages
            }

Java dokumentasi untuk java.util.ResourceBundle.Control.getCandidateLocales(java.lang.String, java.util.Locale).

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Berlaku untuk