Язык

ResourceBundle.Control.GetCandidateLocales(String, Locale) Метод

Определение

List Возвращает значение s в Localeкачестве кандидатов языков для baseName и 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>

Параметры

baseName
String

базовое имя пакета ресурсов, полное имя класса

locale
Locale

языковой стандарт, для которого необходим пакет ресурсов

Возвращаемое значение

кандидат ListLocaleдля данного locale

Атрибуты

Комментарии

List Возвращает значение s в Localeкачестве кандидатов языков для baseName и locale. Этот метод вызывается методом ResourceBundle.getBundle фабрики каждый раз, когда метод фабрики пытается найти пакет ресурсов для целевого объекта Locale.

Последовательность языковых стандартов-кандидатов также соответствует пути поиска ресурсов среды выполнения (также известного как родительская цепочка), если соответствующие пакеты ресурсов для языковых стандартов кандидата существуют, и их родители не определяются загруженными пакетами ресурсов сами. Последний элемент списка должен быть корневым языковым стандартом Locale#ROOT, если он должен иметь базовый пакет в качестве терминала родительской цепочки.

Если заданный языковой стандарт равен Locale.ROOT (корневой языковой стандарт), List возвращается только корневой стандарт, содержащий только корневой Locale стандарт. В этом случае ResourceBundle.getBundle метод фабрики загружает только базовый пакет в виде результирующего пакета ресурсов.

Это не требование возвращать неизменяемый (неизменяемый) List. Однако возвращаемый List объект не должен быть изменен после возврата getCandidateLocales.

Реализация по умолчанию возвращает List содержащие Locales, используя приведенные ниже правила. В приведенном ниже описании em <L/em,>< em S</>>em, <em>C</>em и <em V</em>> соответственно представляют непустый язык, скрипт, страну и вариант.<> Например, [<em L</>em>, <em>C</em>] представляет собой Locale непустые значения только для языка и страны. <Форма em>L</em>("xx") представляет значение языка (непустое) — "xx". Во всех случаях Localeзначения окончательного компонента являются пустыми строками.

<ol><li>Для входных данных Locale с пустым значением скрипта добавьте кандидаты Locale, опустив окончательный компонент по одному, как показано ниже:

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

<li>Для входных данных Locale со значением скрипта, не допускающего пустого значения скрипта, добавьте кандидатов Locale, опущенных до языка, а затем добавьте кандидатов, созданных из Locale страны и варианта восстановлен:

<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>>< [><em L/em, em L>><<<>/em]</li>>< [<em>L</em, em C</em, <>>><em>V</em]</><li li> [<em>L</em, <em>C</>em>]</>><li [<em>L</em>]</li></li/li/li><Locale.ROOT/li/ul></li/li><>>

<Li>Для входных данных Locale с вариантным значением, состоящим из нескольких вложенных тегов, разделенных подчеркиванием, создайте кандидаты Locale, опустив вариантные подтеги по одному, а затем вставьте их после каждого вхождения Localeс полным значением варианта в исходном списке. Например, если вариант состоит из двух подтегов <em>V1</em> и <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><> [<>em L</em>, em S</>em, <<>em>C</em]></li><> li [<em>L</>em, <>em S</>em]</li>>< [<>em L</>em, <>em C<>/em, em V1</>em,><<> em V2</em]</li><> [<em>L</>>em, em C/>em,>><< em V1<</>em]</li><[><em>L</em>, <em C></em>]</li><li> [<em>L</em>]</li></li><Locale.ROOT/li></ul></li>

<li>Особые случаи для китайского. Если входные данные Locale имеют язык "zh" (китайский) и пустое значение скрипта, может быть предоставлено значение "Ханс" (упрощенное) или "Hant" (традиционное) в зависимости от страны. Когда страна является "CN" (Китай) или "SG" (Сингапур), "Ханс" поставляется. Когда страна является "HK" (Гонконг САР Китай), "MO" (Macau SAR China), или "TW" (Тайвань), "Hant" поставляется. Для всех других стран или когда страна пуста, скрипт не предоставляется. Например, Locale("zh", "CN") для списка кандидатов будет: <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(em/em]/li><[<><em/em>("zh")<<")/li li>Locale.ROOT><</li/li></ul>

Для Locale("zh", "TW"), список кандидатов будет: <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")/< li></liLocale.ROOT<>/li></ul></li/li>

<li>Особые случаи для норвежского языка. Оба Locale("no", "NO", "NY") и Locale("nn", "NO") представляют норвежский Nynorsk. Если язык языкового стандарта имеет значение "nn", стандартный список кандидатов создается до [<em>L</em>("nn")), а затем добавляются следующие кандидаты:

<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/liLocale.ROOT><<>/li<>/ul<><>><>

Если языковой стандарт Locale("no", "NO", "NY")в точности, он сначала преобразуется Locale("nn", "NO") в, а затем выполняется приведенная выше процедура.

Кроме того, Java относится к языку "нет" как синоним норвежского bokmå l "nb". За исключением одного регистра Locale("no", "NO", "NY") (обработанного выше), если входные данные Locale имеют язык "нет" или "nb", кандидаты Localeс языковым кодом "no" и "nb" перемешиваются, сначала используя запрошенный язык, а затем используя его синоним. Например, Locale("nb", "NO", "POSIX") создает следующий список кандидатов:

<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(em/em")/li>>< [><<>em/em("no"), <em>C</>em("NO")]</li>>< [<em>L</em>("nb")]</li<>> [<em/em><>("no")</li<>/liLocale.ROOT<>/li></ul>

Locale("no", "NO", "POSIX") будет создавать тот же список, за исключением того, что языковые параметры без "нет" будут отображаться до соответствующих языковых стандартов с "nb".</li></ol>

Реализация по умолчанию использует ArrayList , что переопределяющие реализации могут изменяться перед возвратом вызывающему объекту. Однако подкласс не должен изменять его после возврата getCandidateLocales.

Например, если задано baseName значение "Сообщения" и заданоlocale, то ListLocaleимеет значение Locale("ja",&nbsp;"",&nbsp;"XX")s:

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

возвращается значение #ДЕЛ/0!. И если найдены пакеты ресурсов для "ja" и "" Locales, то путь поиска ресурсов среды выполнения (родительская цепочка) имеет следующий вид:

{@code
                Messages_ja -> Messages
            }

Java документации по java.util.ResourceBundle.Control.getCandidateLocales(java.lang.String, java.util.Locale).

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Применяется к