PluralFormat Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
PluralFormat unterstützt die Erstellung von internationalisierten Nachrichten mit pluraler Umflung.
[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
- Vererbung
- Attribute
Hinweise
PluralFormat unterstützt die Erstellung von internationalisierten Nachrichten mit pluraler Umflung. Sie basiert auf der Pluralauswahl, d. h. der Aufrufer gibt Nachrichten für jeden pluralen Fall an, der in der Sprache des Benutzers angezeigt werden kann und die PluralFormat entsprechende Nachricht basierend auf der Nummer auswählt.
<h3>Das Problem der Pluralformen in internationalisierten Nachrichten</h3>
Verschiedene Sprachen haben unterschiedliche Möglichkeiten, Plurale zu inflect plurals. Das Erstellen von internationalisierten Nachrichten, die Pluralformen enthalten, ist nur möglich, wenn das Framework plurale Formen aller Sprachen richtig verarbeiten kann.
ChoiceFormat behandelt dies nicht gut, da sie jeder Nachricht ein Nummernintervall hinzufügt und die Nachricht auswählt, deren Intervall eine bestimmte Zahl enthält. Dies kann nur eine begrenzte Anzahl von Intervallen verarbeiten. In einigen Sprachen wie Polnisch gilt jedoch ein pluraler Fall für unendlich viele Intervalle (z. B. gilt der paukale Fall für Zahlen, die mit 2, 3 oder 4 enden, außer denen, die mit 12, 13 oder 14 enden). Daher ChoiceFormat ist es nicht angemessen.
PluralFormat befasst sich damit, indem das Problem in zwei Teile unterteilt wird: <ul><li>Es verwendet PluralRules , die komplexere Bedingungen für einen pluralen Fall als nur ein einzelnes Intervall definieren können. Diese Pluralregeln definieren sowohl, welche Pluralfälle in einer Sprache vorhanden sind, als auch für welche Zahlen diese Fälle gelten.
<li>Es stellt vordefinierte Pluralregeln für viele Sprachen bereit. Daher muss sich der Programmierer nicht um die pluralen Fälle einer Sprache kümmern und muss nicht die pluralen Fälle definieren; sie können einfach die vordefinierten Schlüsselwörter verwenden. Die gesamte plurale Formatierung von Nachrichten kann mithilfe lokalisierter Muster aus Ressourcenbündeln erfolgen. Informationen zu vordefinierten Pluralregeln finden Sie auf der Seite "CLDR Language Plural Rules " unter https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_plural_rules.html</ul>
<h4>Nutzung von PluralFormat</h4>
Hinweis: In der Regel erfolgt die Pluralformatierung über MessageFormat einen plural Argumenttyp, anstatt eine eigenständige PluralFormatFormatierung zu verwenden.
In dieser Diskussion wird davon ausgegangen, dass Sie mit einem vordefinierten Satz von Pluralregeln arbeiten PluralFormat . Sie können einen erstellen, indem Sie einen der Konstruktoren verwenden, die ein ULocale Objekt verwenden. Um das Nachrichtenmuster anzugeben, können Sie es entweder an den Konstruktor übergeben oder explizit mithilfe der applyPattern() Methode festlegen. Die format() Methode verwendet ein Zahlenobjekt und wählt die Nachricht des übereinstimmenden Plural-Falls aus. Diese Nachricht wird zurückgegeben.
<h5>Muster und ihre Interpretation</h5>
Der Mustertext definiert die Nachrichtenausgabe für jeden pluralen Fall des angegebenen Gebietsschemas. Syntax: <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 zwischen Syntaxelementen wird ignoriert, außer zwischen den {curly braces} und deren Unternachricht und zwischen dem '=' und der Anzahl eines expliziten Werts.
Es gibt 6 vordefinierte Fallstichwörter in CLDR/ICU - "zero", "one", "two", "few", "many" und "other". Sie müssen immer einen Nachrichtentext für den Standardmäßigen Pluralfall "other" definieren, der in jedem Regelsatz enthalten ist. Wenn Sie keinen Nachrichtentext für einen bestimmten pluralen Fall angeben, wird der Nachrichtentext des pluralen Falls "other" diesem pluralen Fall zugewiesen.
Beim Formatieren wird die Eingabenummer zuerst mit den explicitValue-Klauseln abgeglichen. Wenn keine genaue Zahl gefunden wird, wird ein Schlüsselwort ausgewählt, indem die PluralRules Eingabenummer <em>minus dem Offset</em> aufgerufen wird. (Der Offset ist standardmäßig auf 0 festgelegt, wenn er aus der Musterzeichenfolge weggelassen wird.) Wenn es keine Klausel mit diesem Schlüsselwort gibt, werden die "other"-Klauseln zurückgegeben.
Ein unquotetes Nummernzeichen (#) in der ausgewählten Unternachricht selbst (d. h. außerhalb der in der Unternachricht geschachtelten Argumente) wird durch die Eingabenummer minus des Offsets ersetzt. Der Zahlen-Minus-Offset-Wert wird mit einem NumberFormat für das PluralFormatGebietsschema 's' formatiert. Wenn Sie eine spezielle Zahlenformatierung benötigen, müssen Sie ein MessageFormatNumberFormat Argument verwenden und explizit angeben.
<strong>Hinweis:</strong> Dieses Argument ist Formatierung, ohne den Offset zu subtrahieren! Wenn Sie ein benutzerdefiniertes Format benötigen und einen Offset ungleich Null aufweisen, müssen Sie den Wert für den Zahlen-Minus-Offset als separaten Parameter übergeben.
Ein Verwendungsbeispiel finden Sie in der MessageFormat Klassendokumentation.
<h4>Definieren von benutzerdefinierten Pluralregeln</h4>
Wenn Sie mit benutzerdefinierten Regeln arbeiten PluralFormat müssen, können Sie ein PluralRules Objekt erstellen und an PluralFormatden Konstruktor übergeben. Wenn Sie auch ein Gebietsschema in diesem Konstruktor angeben, wird dieses Gebietsschema verwendet, um die Zahl in den Nachrichtentexten zu formatieren.
Weitere Informationen zu PluralRules finden Sie unter PluralRules.
Java Dokumentation für android.icu.text.PluralFormat.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
| Name | Beschreibung |
|---|---|
| PluralFormat() |
Erstellt eine neue Kardinalnummer |
| PluralFormat(IntPtr, JniHandleOwnership) |
|
| PluralFormat(Locale, PluralRules) |
Erstellt eine neue Kardinalnummer |
| PluralFormat(Locale, PluralRules+PluralType) |
|
| PluralFormat(Locale) |
Erstellt eine neue Kardinalzahl |
| PluralFormat(PluralRules, String) |
Erstellt eine neue Kardinalnummer |
| PluralFormat(PluralRules) |
Erstellt eine neue Kardinalnummer |
| PluralFormat(String) |
Erstellt eine neue Kardinalnummer |
| PluralFormat(ULocale, PluralRules, String) |
Erstellt eine neue Kardinalnummer |
| PluralFormat(ULocale, PluralRules) |
Erstellt eine neue Kardinalnummer |
| PluralFormat(ULocale, PluralRules+PluralType, String) |
|
| PluralFormat(ULocale, PluralRules+PluralType) |
|
| PluralFormat(ULocale, String) |
Erstellt eine neue Kardinalnummer |
| PluralFormat(ULocale) |
Erstellt eine neue Kardinalzahl |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Class |
Gibt die Laufzeitklasse dieses Werts |
| Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
| JniIdentityHashCode |
Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist. (Geerbt von Object) |
| JniManagedPeerState |
|
| JniPeerMembers |
|
| PeerReference |
Ruft den JNI-Objektverweis für diesen Java Peer ab. (Geerbt von Object) |
| ThresholdClass |
|
| ThresholdType |
|
Methoden
| Name | Beschreibung |
|---|---|
| ApplyPattern(String) |
Legt das muster fest, das von diesem Pluralformat verwendet wird. |
| Clone() |
Erstellt und gibt eine Kopie dieses Objekts zurück. (Geerbt von _Format) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
|
| Dispose() |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| Dispose(Boolean) |
Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden. (Geerbt von Object) |
| DisposeUnlessReferenced() |
|
| Equals(Object) |
|
| Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
| Equals(PluralFormat) |
Gibt true zurück, wenn dies dem bereitgestellten PluralFormat entspricht. |
| Format(Double) |
Formatiert eine Pluralnachricht für eine bestimmte Zahl. |
| Format(Object, StringBuffer, FieldPosition) |
Formatiert eine Pluralnachricht für eine bestimmte Zahl und fügt die formatierte Nachricht an die angegebene |
| Format(Object) |
Formatiert ein Objekt, um eine Zeichenfolge zu erzeugen. (Geerbt von _Format) |
| FormatToCharacterIterator(Object) |
Formatiert ein Objekt, das ein |
| GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
| JavaFinalize() |
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind. (Geerbt von Object) |
| Notify() |
Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet. (Geerbt von Object) |
| NotifyAll() |
Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten. (Geerbt von Object) |
| Parse(String, ParsePosition) |
Diese Methode wird von |
| ParseObject(String, ParsePosition) |
Diese Methode wird von |
| ParseObject(String) |
Analysiert Text vom Anfang der angegebenen Zeichenfolge, um ein Objekt zu erzeugen. (Geerbt von _Format) |
| SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
| SetNumberFormat(NumberFormat) |
Legt das von diesem Formatierer verwendete Zahlenformat fest. |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
|
| ToArray<T>() |
Erstellt ein verwaltetes Array aus diesem Java Arraywrapper. (Geerbt von Object) |
| ToPattern() |
Gibt das Muster für dieses PluralFormat zurück. |
| ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
| UnregisterFromRuntime() |
Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf. (Geerbt von Object) |
| Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><> (Geerbt von Object) |
| Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
| Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IJavaPeerable.Disposed() |
|
| IJavaPeerable.Finalized() |
|
| IJavaPeerable.JniObjectReferenceControlBlock |
|
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
|
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
|
| IJavaPeerable.SetPeerReference(JniObjectReference) |
|
| IJavaPeerable.UnregisterFromRuntime() |
|
Erweiterungsmethoden
| Name | Beschreibung |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Ruft den JNI-Namen des Typs der Instanz |
| JavaAs<TResult>(IJavaPeerable) |
Versuchen Sie, die Eingabe |
| JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
| JavaCast<TResult>(IJavaObject) |
|
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Versuchen Sie, die Eingabe |