Lenguaje

PluralFormat Clase

Definición

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

[Android.Runtime.Register("android/icu/text/PluralFormat", ApiSince=24, DoNotGenerateAcw=true)]
public class PluralFormat : Android.Icu.Text.UFormat
[<Android.Runtime.Register("android/icu/text/PluralFormat", ApiSince=24, DoNotGenerateAcw=true)>]
type PluralFormat = class
    inherit UFormat
Herencia
Atributos

Comentarios

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural. Se basa en la selección plural, es decir, el autor de la llamada especifica los mensajes para cada caso plural que puede aparecer en el idioma del usuario y PluralFormat selecciona el mensaje adecuado en función del número.

<h3>El problema de las formas plurales en mensajes< internacionalizados/h3>

Los distintos idiomas tienen diferentes maneras de inflectar plurales. La creación de mensajes internacionalizados que incluyan formularios plurales solo es factible cuando el marco puede controlar correctamente las formas plurales de todos los lenguajes. ChoiceFormat no controla esto bien, ya que adjunta un intervalo numérico a cada mensaje y selecciona el mensaje cuyo intervalo contiene un número determinado. Esto solo puede controlar un número finito de intervalos. Pero en algunos idiomas, como polaco, un caso plural se aplica a intervalos infinitos (por ejemplo, el caso paucal se aplica a números que terminan con 2, 3 o 4 excepto los que terminan con 12, 13 o 14). Por lo tanto ChoiceFormat , no es adecuado.

PluralFormat trata este problema dividiendo el problema en dos partes: <ul><li>Usa PluralRules que puede definir condiciones más complejas para un caso plural que solo un solo intervalo. Estas reglas plurales definen los casos en plural en un idioma y en qué números se aplican estos casos. <li>Proporciona reglas plurales predefinidas para muchos lenguajes. Por lo tanto, el programador no tiene que preocuparse por los casos plurales de un idioma y no tiene que definir los casos plurales; simplemente pueden usar las palabras clave predefinidas. El formato plural completo de los mensajes se puede realizar mediante patrones localizados de agrupaciones de recursos. Para obtener reglas plurales predefinidas, consulte la página Reglas de plural del lenguaje CLDR en https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_plural_rules.html</ul.>

<h4>Uso de PluralFormat</h4>

Nota: Normalmente, el formato plural se realiza a través de MessageFormat con un plural tipo de argumento, en lugar de usar un independiente PluralFormat.

En esta explicación se supone que se usa PluralFormat con un conjunto predefinido de reglas plurales. Puede crear uno mediante uno de los constructores que toma un ULocale objeto . Para especificar el patrón de mensaje, puede pasarlo al constructor o establecerlo explícitamente mediante el applyPattern() método . El format() método toma un objeto number y selecciona el mensaje del caso plural coincidente. Este mensaje se devolverá.

<h5>patrones y su interpretación</h5>

El texto del patrón define la salida del mensaje para cada caso plural de la configuración regional especificada. Sintaxis: <blockquote>

pluralStyle = [offsetValue] (selector '{' message '}')+
            offsetValue = "offset:" number
            selector = explicitValue | keyword
            explicitValue = '=' number  // adjacent, no white space in between
            keyword = [^[[:Pattern_Syntax:][:Pattern_White_Space:]]]+
            message: see {@link MessageFormat}

</blockquote> Pattern_White_Space entre los elementos de sintaxis se omite, excepto entre las {llaves} y su sub-mensaje, y entre el '=' y el número de un explicitValue.

Hay 6 palabras clave de mayúsculas y minúsculas predefinidas en CLDR/ICU: "cero", "uno", "dos", "pocos", "varios" y "otros". Siempre tiene que definir un texto de mensaje para el caso plural predeterminado "other", que se incluye en todos los conjuntos de reglas. Si no especifica un texto de mensaje para un caso plural determinado, el texto del mensaje del caso plural "other" se asigna a este caso plural.

Cuando se aplica formato, el número de entrada se compara primero con las cláusulas explicitValue. Si no hay coincidencia exacta con el número, se selecciona una palabra clave llamando al PluralRules con el número <de entrada em>menos el desplazamiento</em>. (El desplazamiento tiene como valor predeterminado 0 si se omite de la cadena de patrón). Si no hay ninguna cláusula con esa palabra clave, se devuelven las cláusulas "other".

Un signo de libra sin comillas (#) en el propio mensaje secundario seleccionado (es decir, fuera de los argumentos anidados en el sub-mensaje) se reemplaza por el número de entrada menos el desplazamiento. El valor number-minus-offset tiene el formato para NumberFormat la configuración regional de .PluralFormat Si necesita formato de número especial, debe usar y MessageFormat especificar explícitamente un NumberFormat argumento. <nota fuerte>:</fuerte> Ese argumento es formato sin restar el desplazamiento! Si necesita un formato personalizado y tiene un desplazamiento distinto de cero, debe pasar el valor de desplazamiento de número menos como parámetro independiente.

Para obtener un ejemplo de uso, consulte la documentación de la MessageFormat clase .

<h4>Definir reglas< plurales personalizadas/h4>

Si necesita usar PluralFormat con reglas personalizadas, puede crear un PluralRules objeto y pasarlo al PluralFormatconstructor de . Si también especifica una configuración regional en este constructor, esta configuración regional se usará para dar formato al número en los textos del mensaje.

Para obtener más información sobre PluralRules, consulte PluralRules.

Java documentación para android.icu.text.PluralFormat.

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.

Constructores

Nombre Description
PluralFormat()

Crea un nuevo número PluralFormat cardinal para la configuración regional predeterminada FORMAT .

PluralFormat(IntPtr, JniHandleOwnership)

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

PluralFormat(Locale, PluralRules)

Crea un nuevo número PluralFormat cardinal para un conjunto determinado de reglas.

PluralFormat(Locale, PluralRules+PluralType)

Crea un nuevo PluralFormat para el tipo plural.

PluralFormat(Locale)

Crea un nuevo número PluralFormat cardinal para un determinado java.util.Locale.

PluralFormat(PluralRules, String)

Crea un nuevo número PluralFormat cardinal para un conjunto determinado de reglas y un patrón.

PluralFormat(PluralRules)

Crea un nuevo número PluralFormat cardinal para un conjunto determinado de reglas.

PluralFormat(String)

Crea un nuevo número PluralFormat cardinal para una cadena de patrón determinada.

PluralFormat(ULocale, PluralRules, String)

Crea un nuevo número PluralFormat cardinal para un conjunto determinado de reglas, un patrón y una configuración regional.

PluralFormat(ULocale, PluralRules)

Crea un nuevo número PluralFormat cardinal para un conjunto determinado de reglas.

PluralFormat(ULocale, PluralRules+PluralType, String)

Crea un nuevo PluralFormat para un tipo plural, un patrón y una configuración regional.

PluralFormat(ULocale, PluralRules+PluralType)

Crea un nuevo PluralFormat para el tipo plural.

PluralFormat(ULocale, String)

Crea un nuevo número PluralFormat cardinal para una cadena de patrón determinada y una configuración regional.

PluralFormat(ULocale)

Crea un nuevo número PluralFormat cardinal para una configuración regional determinada.

Propiedades

Nombre Description
Class

Devuelve la clase en tiempo de ejecución de este Objectobjeto .

(Heredado de Object)
Handle

Identificador de la instancia de Android subyacente.

(Heredado de Object)
JniIdentityHashCode

Obtiene el código hash de identidad asignado a este Java del mismo nivel por el tiempo de ejecución de interoperabilidad.

(Heredado de Object)
JniManagedPeerState

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

(Heredado de JavaObject)
JniPeerMembers

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

PeerReference

Obtiene la referencia de objeto JNI para este Java del mismo nivel.

(Heredado de Object)
ThresholdClass

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

ThresholdType

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

Métodos

Nombre Description
ApplyPattern(String)

Establece el patrón usado por este formato plural.

Clone()

Crea y devuelve una copia de este objeto.

(Heredado de _Format)
Construct(JniObjectReference, JniObjectReferenceOptions)

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

(Heredado de JavaObject)
Dispose()

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
Dispose(Boolean)

Libera los recursos mantenidos por este Java del mismo nivel.

(Heredado de Object)
DisposeUnlessReferenced()

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

(Heredado de JavaObject)
Equals(Object)

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

(Heredado de JavaObject)
Equals(Object)

Indica si algún otro objeto es "igual a" este.

(Heredado de Object)
Equals(PluralFormat)

Devuelve true si es igual al PluralFormat proporcionado.

Format(Double)

Da formato a un mensaje plural para un número determinado.

Format(Object, StringBuffer, FieldPosition)

Da formato a un mensaje plural para un número determinado y anexa el mensaje con formato al especificado StringBuffer.

Format(Object)

Da formato a un objeto para generar una cadena.

(Heredado de _Format)
FormatToCharacterIterator(Object)

Da formato a un objeto que genera un AttributedCharacterIteratorobjeto .

(Heredado de _Format)
GetHashCode()

Devuelve un valor de código hash para el objeto .

(Heredado de Object)
JavaFinalize()
Obsoletos.

Lo llama el recolector de elementos no utilizados en un objeto cuando la recolección de elementos no utilizados determina que no hay más referencias al objeto .

(Heredado de Object)
Notify()

Activa un único subproceso que está esperando en el monitor de este objeto.

(Heredado de Object)
NotifyAll()

Activa todos los subprocesos que están esperando en el monitor de este objeto.

(Heredado de Object)
Parse(String, ParsePosition)

Este método aún no es compatible con PluralFormat.

ParseObject(String, ParsePosition)

Este método aún no es compatible con PluralFormat.

ParseObject(String)

Analiza el texto desde el principio de la cadena especificada para generar un objeto .

(Heredado de _Format)
SetHandle(IntPtr, JniHandleOwnership)

Establece la propiedad Handle.

(Heredado de Object)
SetNumberFormat(NumberFormat)

Establece el formato de número usado por este formateador.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

(Heredado de JavaObject)
ToArray<T>()

Crea una matriz administrada a partir de este contenedor de matriz Java.

(Heredado de Object)
ToPattern()

Devuelve el patrón de este PluralFormat.

ToString()

Devuelve una representación de cadena del objeto .

(Heredado de Object)
UnregisterFromRuntime()

Anula el registro de este Java del mismo nivel del tiempo de ejecución de interoperabilidad.

(Heredado de Object)
Wait()

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser em notificado/em< o >em<interrumpido>/em<.><>

(Heredado de Object)
Wait(Int64, Int32)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)
Wait(Int64)

Hace que el subproceso actual espere hasta que se despierte, normalmente por ser <em>notificado</em> o <em>interrumpido</em>, o hasta que haya transcurrido una cierta cantidad de tiempo real.

(Heredado de Object)

Implementaciones de interfaz explícitas

Nombre Description
IJavaPeerable.Disposed()

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

(Heredado de JavaObject)
IJavaPeerable.Finalized()

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

(Heredado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

(Heredado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

(Heredado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

(Heredado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

(Heredado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

(Heredado de _Format)

Métodos de extensión

Nombre Description
GetJniTypeName(IJavaPeerable)

Obtiene el nombre JNI del tipo de la instancia self.

JavaAs<TResult>(IJavaPeerable)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

JavaCast<TResult>(IJavaObject)

Realiza una conversión de tipos comprobados en tiempo de ejecución de Android.

JavaCast<TResult>(IJavaObject)

PluralFormat admite la creación de mensajes internacionalizados con inflexión plural.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Intente coerción self para escribir TResult, comprobando que la coerción es válida en el lado de Java.

Se aplica a