Ich denke, dass Android Bidi-Analyse-Algorithmus einige Fehler hat. Unicode hat zwei unsichtbar, stark direktionale Zeichen, die sich mit diesen Problemen helfen könnten:
- U + 200E - von links nach rechts Marke
- U + 200F - von rechts nach links Marke
Versuchen Sie für das Problem der Ziffernfolge, auf beiden Seiten der Ziffernfolge Zeichen von links nach rechts (U + 200E) anzubringen.
Unicode hat auch die folgenden bidi Formatierungscodes:
- U + 202A - von links nach rechts
- U + 202B Einbettungs - von rechts nach links Einbettungs
- U + 202C - pop Richtungsformatierung (löscht die vorherige Einbettung oder Override)
- U + 202D - von links nach rechts Überschreibung
- U + 202E - von rechts nach links überschreiben
Für das Problem mit englischen Fragmenten in hebräischem Text könnte es so einfach sein wie das Setzen einer Markierung von rechts nach links vor dem Englischen. (Der Algorithmus von Android hat möglicherweise den Eindruck, dass der Absatz von links nach rechts liegt, da die ersten Zeichen Englisch sind.) Wenn das nicht funktioniert, versuchen Sie vielleicht, den ausgewählten Text mit einer Kombination von Formatierungscodes zu umgeben. (Ich würde versuchen, von links nach rechts einzubetten, gefolgt von pop-orientierten Formatierungen. Ich würde auch versuchen, rechts-links-Einbetten um alles mit selektiven expliziten rechts-nach-links-Einbettungen kombiniert.)
Die Art und Weise, wie diese sind soll das Textlayout beeinflussen, werden durch den Unicode Bidirectional Algorithm Unicode Standard Annex #9 definiert. Wenn jedoch die Implementierung von Android kaputt ist (und ich vermute, dass sie es ist), ist das Beste, was Sie tun können, Versuch und Irrtum, bis die Dinge richtig aussehen. Viel Glück.
EDIT
Soweit Code betroffen ist, hier ist ein Beispiel dafür, wie es in Java getan werden könnte:
String text = "גרסה \u200e2.100\u200e זמינה";
In XML, könnte es sein: hier
<string name="update_available">גרסה ‎2.100‎ זמינה</string>
Können Sie einige Code-Format geben für die Anwendung dieser – Nirali
@Nirali Ich habe einige Code –
Sie haben einen Grammatikfehler in Hebräisch - Sie müssen זזןן zu זזנננ ändern – auval