Lenguaje

ResourceBundle.Control.GetCandidateLocales(String, Locale) Método

Definición

Devuelve un List de Locales como configuraciones regionales candidatas para baseName y 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>

Parámetros

baseName
String

el nombre base del conjunto de recursos, un nombre de clase completo

locale
Locale

configuración regional para la que se desea un conjunto de recursos

Devoluciones

un List de candidatos Localepara el dado locale

Atributos

Comentarios

Devuelve un List de Locales como configuraciones regionales candidatas para baseName y locale. El método factory llama a ResourceBundle.getBundle este método cada vez que el método factory intenta buscar un conjunto de recursos para un destino Locale.

La secuencia de las configuraciones regionales candidatas también corresponde a la ruta de búsqueda de recursos en tiempo de ejecución (también conocida como cadena primaria), si existen los conjuntos de recursos correspondientes para las configuraciones regionales candidatas y sus elementos primarios no se definen mediante agrupaciones de recursos cargados. El último elemento de la lista debe ser una configuración regional raíz Locale#ROOT si se desea que la agrupación base sea el terminal de la cadena primaria.

Si la configuración regional especificada es igual a Locale.ROOT (la configuración regional raíz), solo se debe devolver una List que contenga la raíz Locale . En este caso, el ResourceBundle.getBundle método factory carga solo el lote base como lote de recursos resultante.

No es un requisito devolver un inmutable (no modificable). List Sin embargo, el devuelto List no debe mutarse después de que lo haya devuelto getCandidateLocales.

La implementación predeterminada devuelve un List objeto que contiene Localemediante las reglas descritas a continuación. En la descripción siguiente, <em>L</em>, <em S</em>>, <em>C</em> y <em>V</em> respectivamente representan lenguaje no vacío, script, país y variante. Por ejemplo, [<em>L</em>, <em>C</em>] representa un Locale valor que solo tiene valores no vacíos para el idioma y el país. El formato <em>L</em>("xx") representa el valor de idioma (no vacío) es "xx". En todos los casos, Localese omiten los valores de componente final cuyos valores finales de componente son cadenas vacías.

<ol><li>Para una entrada Locale con un valor de script vacío, anexe candidatos Locales omitiendo el componente final uno por uno como se indica a continuación:

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

<li>Para una entrada Locale con un valor de script no vacío, anexe candidatos Localesi omite el componente final hasta el idioma y, a continuación, anexa los candidatos generados a partir del Locale país con país y variante restaurado:

<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>Para una entrada Locale con un valor variant que consta de varias subetiquetas separadas por carácter de subrayado, genere candidatas Localeomitiendo las subetiquetas variantes una por una y, a continuación, insértelas después de cada aparición de s con el valor de Localevariante completo en la lista original. Por ejemplo, si la variante consta de dos subtags <em>V1</em> y <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><> 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><li>Locale.ROOT</li></ul></li/li>

<li>Casos especiales para chino. Cuando una entrada Locale tiene el idioma "zh" (chino) y un valor de script vacío, puede proporcionarse "Hans" (simplificado) o "Hant" (tradicional), dependiendo del país. Cuando el país es "CN" (China) o "SG" (Singapur), se suministra "Hans". Cuando el país es "HK" (Hong Kong SAR China), "MO" (Macao SAR China), o "TW" (Taiwán), se suministra "Hant". Para todos los demás países o cuando el país está vacío, no se proporciona ningún script. Por ejemplo, para Locale("zh", "CN") , la lista candidata será: <ul><li> [<em>L</em>("zh"), <em>S</em>("Hans"), em>C</em>("CN")]/li><li> [em L/em>("zh"), <em S</em>>("Hans")]/li li>>< [<em>L</em>("zh"), <<em>C</em>("CN")]</li li [<em L/em("zh")<]</li<>> [<em>>L<</em>("zh")")]</li><li>Locale.ROOT</li></ul>

Para Locale("zh", "TW"), la lista de candidatos será: <ul><li> [<em>L</em>("zh"), <em>S</em>("Hant"), <em>C</em>("TW")]</li>>< li [em L/em>("zh"), <em S</em>>("Hant")]/li<>li> [<em>L</em>("zh"), <em>C</em>("TW")]</li<>> li [<<em>>L<</>em("zh")]/<< li><li>Locale.ROOT</li></ul></li/li>

<li>Casos especiales para noruego. Tanto como Locale("no", "NO", "NY")Locale("nn", "NO") representan a Nynorsk noruego. Cuando el idioma de una configuración regional es "nn", la lista de candidatos estándar se genera hasta [<em L</em>>("nn")] y, a continuación, se agregan los siguientes candidatos:

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

Si la configuración regional es exactamente Locale("no", "NO", "NY"), primero se convierte en Locale("nn", "NO") y, a continuación, se sigue el procedimiento anterior.

Además, Java trata el idioma "no" como sinónimo de Bokmå noruego; l "nb". Excepto en el caso Locale("no", "NO", "NY") único (controlado anteriormente), cuando una entrada Locale tiene el idioma "no" o "nb", los candidatos Localecon el código de idioma "no" y "nb" se intercalan, primero usando el idioma solicitado y, a continuación, usando su sinónimo. Por ejemplo, Locale("nb", "NO", "POSIX") genera la siguiente lista de candidatos:

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

Locale("no", "NO", "POSIX") generaría la misma lista, excepto que las configuraciones regionales con "no" aparecerían antes de las configuraciones regionales correspondientes con "nb".</li></ol>

La implementación predeterminada usa una ArrayList que invalida las implementaciones puede modificar antes de devolverla al autor de la llamada. Sin embargo, una subclase no debe modificarla después de que la haya devuelto getCandidateLocales.

Por ejemplo, si el elemento especificado baseName es "Messages" y el especificado locale es Locale("ja",&nbsp;"",&nbsp;"XX"), a continuación, un List de Locales:

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

se devuelve. Y si se encuentran los conjuntos de recursos de los elementos "ja" y "", Localela ruta de búsqueda de recursos en tiempo de ejecución (cadena primaria) es:

{@code
                Messages_ja -> Messages
            }

Java documentación para java.util.ResourceBundle.Control.getCandidateLocales(java.lang.String, java.util.Locale).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el Android y se usan según los términos descritos en creative Creative Commons 2.5 Attribution License.

Se aplica a