PluralFormat Classe

Definizione

PluralFormat supporta la creazione di messaggi internazionalizzati con un'inflessione plurale.

[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
Ereditarietà
PluralFormat
Attributi

Commenti

PluralFormat supporta la creazione di messaggi internazionalizzati con un'inflessione plurale. Si basa sulla selezione plurale, ad esempio il chiamante specifica i messaggi per ogni caso plurale che può essere visualizzato nella lingua dell'utente e PluralFormat seleziona il messaggio appropriato in base al numero.

<h3>Il problema delle forme plurali nei messaggi< internazionalizzati/h3>

Diverse lingue hanno modi diversi per inflect plurali. La creazione di messaggi internazionalizzati che includono forme plurali è fattibile solo quando il framework è in grado di gestire correttamente forme plurali di tutte le lingue. ChoiceFormat non gestisce questa operazione, perché allega un intervallo numerico a ogni messaggio e seleziona il messaggio il cui intervallo contiene un determinato numero. Questo può gestire solo un numero finito di intervalli. Ma in alcune lingue, come il polacco, un caso plurale si applica a intervalli infinitamente molti (ad esempio, il caso di sospensione si applica ai numeri che terminano con 2, 3 o 4 tranne quelli che terminano con 12, 13 o 14). Pertanto ChoiceFormat , non è adeguato.

PluralFormat gestisce questo problema suddividendo il problema in due parti: <ul><li>Usa PluralRules che può definire condizioni più complesse per un caso plurale rispetto a un solo intervallo. Queste regole plurali definiscono sia i casi plurali presenti in una lingua che i numeri a cui si applicano questi casi. <li>Fornisce regole plurali predefinite per molte lingue. Pertanto, il programmatore non deve preoccuparsi dei casi plurali di una lingua e non deve definire i casi plurali; possono semplicemente usare le parole chiave predefinite. L'intera formattazione plurale dei messaggi può essere eseguita usando modelli localizzati da bundle di risorse. Per le regole plurali predefinite, vedere la pagina Regole plurali del linguaggio CLDR in https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_plural_rules.html</ul>

<h4 Utilizzo di >PluralFormat/h4<>

Nota: in genere, la formattazione plurale viene eseguita tramite MessageFormat con un plural tipo di argomento, invece di usare un oggetto autonomo PluralFormat.

Questa discussione presuppone che l'utente usi PluralFormat con un set predefinito di regole plurali. È possibile crearne uno usando uno dei costruttori che accetta un ULocale oggetto . Per specificare il modello di messaggio, è possibile passarlo al costruttore o impostarlo in modo esplicito usando il applyPattern() metodo . Il format() metodo accetta un oggetto number e seleziona il messaggio del caso plurale corrispondente. Questo messaggio verrà restituito.

<modelli h5>e la loro interpretazione</h5>

Il testo del criterio definisce l'output del messaggio per ogni caso plurale delle impostazioni locali specificate. Sintassi: <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 tra gli elementi della sintassi viene ignorato, tranne tra le parentesi graffe} e il relativo sotto-messaggio e tra '=' e il numero di un valore explicitValue.

Esistono 6 parole chiave case predefinite in CLDR/ICU - 'zero', 'one', 'two', 'few', 'many' e 'other'. È sempre necessario definire un testo del messaggio per il caso plurale predefinito "other" contenuto in ogni set di regole. Se non si specifica un testo del messaggio per un caso plurale specifico, il testo del messaggio del caso plurale "other" viene assegnato a questo caso plurale.

Durante la formattazione, il numero di input viene prima confrontato con le clausole explicitValue. Se non è presente alcuna corrispondenza esatta, viene selezionata una parola chiave chiamando PluralRules con il numero di <input em>meno l'offset</em>. L'offset viene impostato su 0 per impostazione predefinita se viene omesso dalla stringa del criterio. Se non è presente alcuna clausola con tale parola chiave, vengono restituite le clausole "other".

Un segno di cancelletto non racchiuso tra virgoole (#) nel sottomessagio selezionato (ad esempio, all'esterno degli argomenti annidati nel sottomessagio) viene sostituito dal numero di input meno l'offset. Il valore number-minus-offset viene formattato usando un NumberFormat valore per le PluralFormatimpostazioni locali. Se è necessaria una formattazione numerica speciale, è necessario usare un MessageFormat oggetto e specificare in modo esplicito un NumberFormat argomento. <nota forte>:/strong< L'argomento> è formattato senza sottrarre l'offset. Se è necessario un formato personalizzato e un offset diverso da zero, è necessario passare il valore number-minus-offset come parametro separato.

Per un esempio di utilizzo, vedere la documentazione della MessageFormat classe.

<h4>Definizione di regole< plurali personalizzate/h4>

Se è necessario usare PluralFormat con regole personalizzate, è possibile creare un PluralRules oggetto e passarlo al PluralFormatcostruttore di . Se si specificano anche impostazioni locali in questo costruttore, queste impostazioni locali verranno utilizzate per formattare il numero nei testi del messaggio.

Per altre informazioni su PluralRules, vedere PluralRules.

per android.icu.text.PluralFormat.

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Costruttori

Nome Descrizione
PluralFormat()

Crea un nuovo numero PluralFormat di cardinalità per le impostazioni locali predefinite FORMAT .

PluralFormat(IntPtr, JniHandleOwnership)

PluralFormat supporta la creazione di messaggi internazionalizzati con un'inflessione plurale.

PluralFormat(Locale, PluralRules)

Crea un nuovo numero PluralFormat di cardinali per un determinato set di regole.

PluralFormat(Locale, PluralRules+PluralType)

PluralFormat supporta la creazione di messaggi internazionalizzati con un'inflessione plurale.

PluralFormat(Locale)

Crea un nuovo numero PluralFormat di cardinalità per un determinato java.util.Localeoggetto .

PluralFormat(PluralRules, String)

Crea un nuovo numero PluralFormat di cardinalità per un determinato set di regole e un modello.

PluralFormat(PluralRules)

Crea un nuovo numero PluralFormat di cardinali per un determinato set di regole.

PluralFormat(String)

Crea un nuovo numero PluralFormat di cardinalità per una determinata stringa di criteri.

PluralFormat(ULocale, PluralRules, String)

Crea un nuovo numero PluralFormat di cardinalità per un determinato set di regole, un modello e impostazioni locali.

PluralFormat(ULocale, PluralRules)

Crea un nuovo numero PluralFormat di cardinali per un determinato set di regole.

PluralFormat(ULocale, PluralRules+PluralType, String)

PluralFormat supporta la creazione di messaggi internazionalizzati con un'inflessione plurale.

PluralFormat(ULocale, PluralRules+PluralType)

PluralFormat supporta la creazione di messaggi internazionalizzati con un'inflessione plurale.

PluralFormat(ULocale, String)

Crea un nuovo numero PluralFormat di cardinalità per una determinata stringa di criteri e impostazioni locali.

PluralFormat(ULocale)

Crea un nuovo numero PluralFormat di cardinalità per una determinata impostazione locale.

Proprietà

Nome Descrizione
Class

Restituisce la classe di runtime di questo Objectoggetto .

(Ereditato da Object)
Handle

Handle per l'istanza di Android sottostante.

(Ereditato da Object)
JniIdentityHashCode

Ottiene il codice hash di identità assegnato a questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
JniPeerMembers

PluralFormat supporta la creazione di messaggi internazionalizzati con un'inflessione plurale.

PeerReference

Ottiene il riferimento all'oggetto JNI per questo peer Java.

(Ereditato da Object)
ThresholdClass

PluralFormat supporta la creazione di messaggi internazionalizzati con un'inflessione plurale.

ThresholdType

PluralFormat supporta la creazione di messaggi internazionalizzati con un'inflessione plurale.

Metodi

Nome Descrizione
ApplyPattern(String)

Imposta il modello utilizzato da questo formato plurale.

Clone()

Crea e restituisce una copia di questo oggetto.

(Ereditato da _Format)
Dispose()

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Dispose(Boolean)

Rilascia le risorse contenute in questo peer Java.

(Ereditato da Object)
Equals(Object)

Indica se un altro oggetto è "uguale a" questo.

(Ereditato da Object)
Equals(PluralFormat)

Restituisce true se l'oggetto è uguale a PluralFormat specificato.

Format(Double)

Formatta un messaggio plurale per un determinato numero.

Format(Object, StringBuffer, FieldPosition)

Formatta un messaggio plurale per un determinato numero e accoda il messaggio formattato all'oggetto specificato StringBuffer.

Format(Object)

Formatta un oggetto per produrre una stringa.

(Ereditato da _Format)
FormatToCharacterIterator(Object)

Formatta un oggetto che produce un oggetto AttributedCharacterIterator.

(Ereditato da _Format)
GetHashCode()

Restituisce un valore di codice hash per l'oggetto .

(Ereditato da Object)
JavaFinalize()

Chiamato dal Garbage Collector su un oggetto quando Garbage Collection determina che non sono presenti altri riferimenti all'oggetto .

(Ereditato da Object)
Notify()

Riattiva un singolo thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
NotifyAll()

Riattiva tutti i thread in attesa del monitor dell'oggetto.

(Ereditato da Object)
Parse(String, ParsePosition)

Questo metodo non è ancora supportato da PluralFormat.

ParseObject(String, ParsePosition)

Questo metodo non è ancora supportato da PluralFormat.

ParseObject(String)

Analizza il testo dall'inizio della stringa specificata per produrre un oggetto .

(Ereditato da _Format)
SetHandle(IntPtr, JniHandleOwnership)

Imposta la proprietà Handle.

(Ereditato da Object)
SetNumberFormat(NumberFormat)

Imposta il formato numerico utilizzato dal formattatore.

ToArray<T>()

Crea una matrice gestita da questo wrapper di matrice Java.

(Ereditato da Object)
ToPattern()

Restituisce il modello per pluralFormat.

ToString()

Restituisce una rappresentazione di stringa dell'oggetto .

(Ereditato da Object)
UnregisterFromRuntime()

Annulla la registrazione di questo Java peer dal runtime di interoperabilità.

(Ereditato da Object)
Wait()

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo <>una notifica</em> o <em>interrotto</em>.

(Ereditato da Object)
Wait(Int64, Int32)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)
Wait(Int64)

Fa sì che il thread corrente attenda finché non viene risvegliato, in genere ricevendo<> una notifica</em> o <em>interrotto</em> o fino a quando non è trascorsa una determinata quantità di tempo reale.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IJavaPeerable.Disposed()

Notifica al runtime di interoperabilità che il peer gestito è stato eliminato.

(Ereditato da Object)
IJavaPeerable.DisposeUnlessReferenced()

Rilascia questo Java peer a meno che non venga conservato da un altro riferimento gestito.

(Ereditato da Object)
IJavaPeerable.Finalized()

Notifica al runtime di interoperabilità che il peer gestito è stato finalizzato.

(Ereditato da Object)
IJavaPeerable.JniManagedPeerState

Ottiene lo stato che descrive la relazione tra questo peer gestito e il relativo riferimento JNI.

(Ereditato da Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Imposta il codice hash dell'identità di interoperabilità per questo Java peer.

(Ereditato da Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Imposta lo stato peer gestito e JNI per questo peer Java.

(Ereditato da Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Imposta il riferimento all'oggetto JNI usato da questo peer gestito.

(Ereditato da Object)

Metodi di estensione

Nome Descrizione
GetJniTypeName(IJavaPeerable)

Ottiene il nome JNI del tipo dell'istanza selfdi .

JavaAs<TResult>(IJavaPeerable)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

JavaCast<TResult>(IJavaObject)

Esegue una conversione del tipo di tipo controllato dal runtime Android.

JavaCast<TResult>(IJavaObject)

PluralFormat supporta la creazione di messaggi internazionalizzati con un'inflessione plurale.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Provare a digitare selfTResult, verificando che la coercizione sia valida sul lato Java.

Si applica a