SelectFormat Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
SelectFormat admite la creación de mensajes internacionalizados seleccionando frases basadas en palabras clave.
[Android.Runtime.Register("android/icu/text/SelectFormat", ApiSince=24, DoNotGenerateAcw=true)]
public class SelectFormat : Java.Text._Format
[<Android.Runtime.Register("android/icu/text/SelectFormat", ApiSince=24, DoNotGenerateAcw=true)>]
type SelectFormat = class
inherit _Format
- Herencia
- Atributos
Comentarios
SelectFormat admite la creación de mensajes internacionalizados seleccionando frases basadas en palabras clave. El patrón especifica cómo asignar palabras clave a frases y proporciona una frase predeterminada. El objeto proporcionado al método format es una cadena que coincide con las palabras clave. Si hay una coincidencia, se selecciona la frase correspondiente; De lo contrario, se usa la frase predeterminada.
<h3>Using SelectFormat for Gender Agreement</h3>
Nota: Normalmente, el formato de selección se realiza a través de MessageFormat con un select tipo de argumento, en lugar de usar un independiente SelectFormat.
El caso de uso principal del formato de selección es la inflexión basada en género. Cuando se insertan nombres o nombres en oraciones, su género puede afectar a los pronombres, las formas de verbo, los artículos y los adjetivos. Es necesario tener especial cuidado en el caso de que no se pueda determinar el género. El impacto varía entre idiomas:
<ul><li>English tiene tres géneros, y el género desconocido se controla como un caso especial. Los nombres usan el género de la persona con nombre (si se conoce), los nombres que hacen referencia a las personas usan género natural y los objetos inanimados suelen ser neutros. El género solo afecta a los pronombres: "él", "ella", "it", "ellos".
<li german>difiere del inglés en que el género de los nombres es bastante arbitrario, incluso para los nombres que hacen referencia a las personas ("Mä dchen", chica, es neutral). El género afecta a los pronombres ("er", "sie", "es"), artículos ("der", "die", "das"), y formas adjetivas ("guter Mann", "gute Frau", "gutes Mä dchen").
<li>french tiene solo dos géneros; como en alemán el género de nombres es bastante arbitrario - para el sol y la luna, los géneros son los opuestos de los en alemán. El género afecta a los pronombres ("il", "elle"), artículos ("le", "la"), formas adjetivas ("bon", "bonne"), y a veces formas de verbo ("allé", "allé e").
<li>Polaco distingue cinco géneros (o clases de sustantivos), masculino humano, animar masculinos no humanos, masculino inanimate, femenino y neuter. </ul>
Algunos otros lenguajes tienen clases de sustantivo que no están relacionadas con el género, pero similares en uso gramatical. Algunos idiomas africanos tienen alrededor de 20 clases de sustantivos.
<b>Nota:</b>Para el género de una persona en una oración determinada, normalmente es necesario distinguir solo entre mujeres, hombres y otros/desconocidos.
Para permitir que los localizadores creen patrones de oración que tengan en cuenta las dependencias de género de su lenguaje, el software debe proporcionar información sobre el género asociado a un nombre o nombre a MessageFormat. Se pueden distinguir dos casos principales:
<ul><li>Para las personas, la información de género natural debe mantenerse para cada persona. Se pueden usar palabras clave como "macho", "mujer", "mixta" (para grupos de personas) y "desconocidas".
<li>Para los nombres, se debe mantener la información de género gramatical para cada nombre y por idioma, por ejemplo, en agrupaciones de recursos. Las palabras clave "masculino", "femenina" y "neuter" se usan normalmente, pero algunos idiomas pueden requerir otras palabras clave. </ul>
La palabra clave resultante se proporciona a MessageFormat como un parámetro independiente del nombre o nombre al que está asociado. Por ejemplo, para generar un mensaje como "Jean fue a París", se proporcionarían tres argumentos independientes: el nombre de la persona como argumento 0, el género de la persona como argumento 1 y el nombre de la ciudad como argumento 2. El patrón de oración para inglés, donde el género de la persona no tiene ningún impacto en esta frase simple, no se referiría al argumento 1 en absoluto:
{0} went to {2}.
<b>Nota:</b> La oración completa debe incluirse (y repetirse parcialmente) dentro de cada frase. De lo contrario, los traductores tendrían que entrenarse sobre cómo mover bits de la oración dentro y fuera del argumento select de un mensaje. (Los ejemplos siguientes no siguen esta recomendación).
El patrón de oración para francés, donde el género de la persona afecta a la forma del participante, usa un formato de selección basado en el argumento 1:
{0} est {1, select, female {allée} other {allé}} à {2}.
Los patrones se pueden anidar, de modo que sea posible controlar las interacciones de número y género cuando sea necesario. Por ejemplo, si la oración anterior debe permitir que se inserten los nombres de varias personas, se puede usar el siguiente patrón de oración (con el argumento 0 la lista de nombres de las personas, el argumento 1 el número de personas, el argumento 2 su género combinado y el argumento 3 el nombre de la ciudad):
{0} {1, plural,
one {est {2, select, female {allée} other {allé}}}
other {sont {2, select, female {allées} other {allés}}}
}à {3}.
<h4>Patrones y su interpretación</h4>
La SelectFormat cadena de patrón define la salida de la frase para cada palabra clave definida por el usuario. El patrón es una secuencia de pares (palabra clave, mensaje). Una palabra clave es un "identificador de patrón": [^[[:P attern_Syntax:][:P attern_White_Space:]]]+
Cada mensaje es una cadena de patrón MessageFormat incluida en {llaves}.
Siempre tiene que definir una frase para la palabra clave otherpredeterminada; esta frase se devuelve cuando la palabra clave proporcionada al format método no coincide con ninguna otra palabra clave. Si un patrón no proporciona una frase para other, el método al que se proporciona devuelve el error U_DEFAULT_KEYWORD_MISSING.
<br> Pattern_White_Space entre palabras clave y mensajes se omite. Pattern_White_Space dentro de un mensaje se conserva y genera.
Example:
MessageFormat msgFmt = new MessageFormat("{0} est " +
"{1, select, female {allée} other {allé}} à Paris.",
new ULocale("fr"));
Object args[] = {"Kirti","female"};
System.out.println(msgFmt.format(args));
Genera el resultado:<br>Kirti est allée à Paris.
Java documentación para android.icu.text.SelectFormat.
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 |
|---|---|
| SelectFormat(IntPtr, JniHandleOwnership) |
|
| SelectFormat(String) |
Crea un nuevo |
Propiedades
| Nombre | Description |
|---|---|
| Class |
Devuelve la clase en tiempo de ejecución de este |
| 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 |
|
| JniPeerMembers |
|
| PeerReference |
Obtiene la referencia de objeto JNI para este Java del mismo nivel. (Heredado de Object) |
| ThresholdClass |
|
| ThresholdType |
|
Métodos
| Nombre | Description |
|---|---|
| ApplyPattern(String) |
Establece el patrón usado por este formato de selección. |
| Clone() |
Crea y devuelve una copia de este objeto. (Heredado de _Format) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| 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() |
|
| Equals(Object) |
|
| Equals(Object) |
Indica si algún otro objeto es "igual a" este. (Heredado de Object) |
| Format(Object, StringBuffer, FieldPosition) |
Selecciona la frase de la palabra clave especificada. |
| Format(Object) |
Da formato a un objeto para generar una cadena. (Heredado de _Format) |
| Format(String) |
Selecciona la frase de la palabra clave especificada. |
| FormatToCharacterIterator(Object) |
Da formato a un objeto que genera un |
| 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) |
| ParseObject(String, ParsePosition) |
Este método no es compatible con |
| 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) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| ToArray<T>() |
Crea una matriz administrada a partir de este contenedor de matriz Java. (Heredado de Object) |
| ToPattern() |
Devuelve el patrón de este |
| 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() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
| IJavaPeerable.UnregisterFromRuntime() |
|
Métodos de extensión
| Nombre | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Obtiene el nombre JNI del tipo de la instancia |
| JavaAs<TResult>(IJavaPeerable) |
Intente coerción |
| JavaCast<TResult>(IJavaObject) |
Realiza una conversión de tipos comprobados en tiempo de ejecución de Android. |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Intente coerción |