Поделиться через


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

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

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

a List из кандидатов Localeдля заданного locale

Атрибуты

Комментарии

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

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

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

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

Реализация по умолчанию возвращает объект , List содержащий Locale, используя описанные ниже правила. В приведенном ниже <описании 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 с пустым значением скрипта добавьте потенциальные Locales, пропуская по одному окончательный компонент, как показано ниже:

<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>Для входных данных Locale с непустым значением скрипта добавьте потенциальные Locales, опустив окончательный компонент до языка, а затем добавьте кандидаты, созданные Locale из , с восстановленными страной и вариантом:

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

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

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

<li>Особые случаи для норвежского языка. Оба Locale("no", "NO", "NY") и Locale("nn", "NO") представляют норвежский Нюнорск. Если язык языкового стандарта — "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<>li<Locale.ROOT>/li<>/ul<><>><>

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

Кроме того, Java рассматривает язык "no" как синоним норвежского bokmål "nb". За исключением одного регистра Locale("no", "NO", "NY") (описанного выше), когда входные данные Locale имеют язык "нет" или "nb", кандидаты Localeс кодами языка "нет" и "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>("no"), <em>C</em>("NO")]</li>>< [<em>L</em>("nb")]</li>>< [<em>L</em>("no")]</liLocale.ROOT<<>>/li></ul>

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

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

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

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

. А если найдены пакеты ресурсов для "ja" и "" Locale, то путь поиска ресурса среды выполнения (родительская цепочка) будет следующим:

{@code
                Messages_ja -> Messages
            }

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

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

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