BidiFormatter 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.
Hilfsklasse zum Formatieren von Text für die Anzeige in einem potenziell entgegengesetzten Direktionalitätskontext ohne Garbling.
[Android.Runtime.Register("android/text/BidiFormatter", DoNotGenerateAcw=true)]
public sealed class BidiFormatter : Java.Lang.Object
[<Android.Runtime.Register("android/text/BidiFormatter", DoNotGenerateAcw=true)>]
type BidiFormatter = class
inherit Object
- Vererbung
- Attribute
Hinweise
Hilfsklasse zum Formatieren von Text für die Anzeige in einem potenziell entgegengesetzten Direktionalitätskontext ohne Garbling. Die Richtung des Kontexts wird bei der Formatierungserstellung festgelegt, und die Richtungsalität des Texts kann entweder geschätzt oder übergeben werden, wenn bekannt.
Um Versionen zu unterstützen, die niedriger sind als android.os.Build.VERSION_CODES#JELLY_BEAN_MR2, können Sie die Klasse der Supportbibliothek androidx.core.text.BidiFormatter verwenden.
Diese APIs bieten die folgenden Funktionen:
1. Bidi Wrapping When text in one language is mixed into a document in another, opposite-directionality language, z.B. when an English business name is embedded in some Hebräisch text, both the inserted string and the text umgebung it may be displayed in fälschlicherweise, wenn die eingefügte Zeichenfolge explizit von dem umgebenden Text in einem "Wrapper" getrennt ist, der:
- Deklariert seine Richtungsalität, sodass die Zeichenfolge richtig angezeigt wird. Dies kann in Unicode-Bidi-Formatierungscodes mit #unicodeWrap ähnlichen Methoden erfolgen.
- Isoliert die Richtungsalität der Zeichenfolge, sodass sie sich nicht unuell auf den umgebenden Inhalt auswirkt. Derzeit kann dies nur mit unsichtbaren Unicode-Zeichen derselben Richtung wie der Kontext (LRM oder RLM) zusätzlich zur obigen Richtungsdeklaration erfolgen, wodurch die Richtungsalität auf die des Kontexts zurückgesetzt wird. Das "Zurücksetzen" muss möglicherweise an beiden Enden der Zeichenfolge erfolgen. Ohne "Zurücksetzen" nach der Zeichenfolge wird die Zeichenfolge an eine Zahl "sticken" oder logisch entgegengesetzten Text trennen, der dem Text in der Zeile folgt (auch wenn sie durch neutralen Inhalt wie Leerzeichen und Interpunktion getrennt wird). Ohne "Zurücksetzen" vor der Zeichenfolge kann dasselbe vorkommen, aber nur mit mehr Text in entgegengesetzter Richtung, nicht mit einer Zahl. Ein Ansatz besteht darin, die Richtung nur nach jeder Zeichenfolge zurückzusetzen, in der Theorie, dass, wenn der vorangehende entgegengesetzte Text selbst bidi-wrapped ist, die "Zurücksetzung" nach der Zeichenfolge verhindert. (Wenn Sie die "Zurücksetzung" nur vor jeder Zeichenfolge ausführen, funktioniert dies definitiv nicht, da wir keine bidi-umbrochenen Zahlen erfordern möchten, und auf eine bidi-umbrochene entgegengesetzte Richtungszeichenfolge kann eine Zahl folgen.) Dennoch besteht die sicherste Richtlinie darin, die "Zurücksetzung" an beiden Enden jeder Zeichenfolge durchzuführen, da RTL-Nachrichtenübersetzungen häufig untranslatierte lateinische Markennamen und technische Begriffe enthalten, und einer davon kann ein bidi-umbrochener eingefügter Wert folgen. Wenn man eine solche Nachricht hat, ist es jedoch am besten, die "Zurücksetzung" manuell in der Nachrichtenübersetzung selbst durchzuführen, da der Text der Nachricht in entgegengesetzter Richtung von einer eingefügten Zahl gefolgt werden könnte, auf die wir trotzdem nicht bidi-wrap würden. Daher wird "reset" erst nach dem aktuellen Standardwert der Zeichenfolge zurückgesetzt. In einer Alternative zum "Zurücksetzen" ermöglichen kürzlich hinzugefügte Ergänzungen der HTML-, CSS- und Unicode-Standards die Isolation als Teil der Directionality-Deklaration. Diese Form der Isolierung ist besser als "Zurücksetzen", da sie weniger Platz benötigt, keine Kenntnis der Kontextrichtung erfordert, einen sanfteren Effekt als "Zurücksetzen" hat und beide Enden der Zeichenfolge schützt. Wir lassen die Verwendung jedoch noch nicht zu, da erforderliche Plattformen sie noch nicht unterstützen.
Die Bereitstellung dieser Wrapping-Dienste ist der grundlegende Zweck des bidi-Formatierers.
2. Direktionalitätsschätzung Wie weiß man, ob eine Zeichenfolge, die in umgebenden Text eingefügt werden soll, dieselbe Richtungsalität aufweist? Nun, in vielen Fällen weiß man, dass dies beim Schreiben des Codes bei der Einfügung der Fall sein muss, z. B. wenn eine lokalisierte Nachricht in eine lokalisierte Seite eingefügt wird. In solchen Fällen ist es nicht erforderlich, den bidi-Formatierer überhaupt einzubeziehen. In einigen anderen Fällen muss sie nicht mit dem Kontext identisch sein, sondern ist entweder Konstanten (z. B. URLs sind immer LTR) oder anderweitig bekannt. In den übrigen Fällen, z. B. wenn die Zeichenfolge vom Benutzer eingegeben wird oder aus einer Datenbank stammt, ist die Sprache der Zeichenfolge (und damit die Richtungsalität) nicht bekannt und muss zur Laufzeit geschätzt werden. Der bidi-Formatierer kann dies automatisch mithilfe des standardmäßigen Algorithmus für die erste starke Schätzung ausführen. Sie kann auch für die Verwendung eines benutzerdefinierten Direktionalitätsschätzungsobjekts konfiguriert werden.
Java Dokumentation für android.text.BidiFormatter.
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.
Eigenschaften
| Name | Beschreibung |
|---|---|
| Class |
Gibt die Laufzeitklasse dieses Werts |
| Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
| Instance |
Factory zum Erstellen einer Instanz von BidiFormatter für die Standardgebietsschemarichtung. |
| IsRtlContext | |
| JniIdentityHashCode |
Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist. (Geerbt von Object) |
| JniPeerMembers |
Hilfsklasse zum Formatieren von Text für die Anzeige in einem potenziell entgegengesetzten Direktionalitätskontext ohne Garbling. |
| PeerReference |
Ruft den JNI-Objektverweis für diesen Java Peer ab. (Geerbt von Object) |
| StereoReset | |
| ThresholdClass |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. (Geerbt von Object) |
| ThresholdType |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. (Geerbt von Object) |
Methoden
| Name | Beschreibung |
|---|---|
| Clone() |
Erstellt und gibt eine Kopie dieses Objekts zurück. (Geerbt von Object) |
| 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) |
| Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
| GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
| GetInstance(Boolean) |
Factory zum Erstellen einer Instanz von BidiFormatter aufgrund der Kontextrichtung. |
| GetInstance(Locale) |
Factory zum Erstellen einer Instanz von BidiFormatter aufgrund des Kontextgebietsschemas. |
| IsRtl(ICharSequence) |
Funktioniert wie |
| IsRtl(String) |
Schätzt die Richtungsalität einer Zeichenfolge mithilfe der Heuristik der Standardtextrichtung. |
| 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) |
| SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
| ToArray<T>() |
Erstellt ein verwaltetes Array aus diesem Java Arraywrapper. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
| UnicodeWrap(String, Boolean) |
Funktioniert wie |
| UnicodeWrap(String, ITextDirectionHeuristic, Boolean) |
Funktioniert wie |
| UnicodeWrap(String, ITextDirectionHeuristic) |
Funktioniert wie |
| UnicodeWrap(String) |
Funktioniert wie |
| UnicodeWrapFormatted(ICharSequence, Boolean) |
Funktioniert wie |
| UnicodeWrapFormatted(ICharSequence, ITextDirectionHeuristic, Boolean) |
Funktioniert wie |
| UnicodeWrapFormatted(ICharSequence, ITextDirectionHeuristic) |
Funktioniert wie |
| UnicodeWrapFormatted(ICharSequence) |
Funktioniert wie |
| 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() |
Benachrichtigt die Interoplaufzeit, dass dieser verwaltete Peer verworfen wurde. (Geerbt von Object) |
| IJavaPeerable.DisposeUnlessReferenced() |
Gibt diesen Java Peer frei, es sei denn, er wird von einem anderen verwalteten Verweis beibehalten. (Geerbt von Object) |
| IJavaPeerable.Finalized() |
Benachrichtigt die Interoplaufzeit, dass dieser verwaltete Peer abgeschlossen wurde. (Geerbt von Object) |
| IJavaPeerable.JniManagedPeerState |
Ruft den Zustand ab, der die Beziehung zwischen diesem verwalteten Peer und seinem JNI-Verweis beschreibt. (Geerbt von Object) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Legt den Interop-Identitätshashcode für diesen Java Peer fest. (Geerbt von Object) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Legt den verwalteten und JNI-Peerstatus für diesen Java Peer fest. (Geerbt von Object) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Legt den JNI-Objektverweis fest, der von diesem verwalteten Peer verwendet wird. (Geerbt von Object) |
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) |
Hilfsklasse zum Formatieren von Text für die Anzeige in einem potenziell entgegengesetzten Direktionalitätskontext ohne Garbling. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Versuchen Sie, die Eingabe |