Android 4.3 hat eine Menge Unterstützung für RTL-Sprachen (Right-To-Left) wie Hebräisch und Arabisch hinzugefügt.
Auch wenn es "textDirection", "layoutDirection" und "gravity" gibt, kann ich die Äquivalente für den Notification Builder nicht finden, nicht einmal in der Kompatibilitätsbibliothek.
Dies bedeutet, dass wenn hebräische und englische Wörter zusammen vorkommen, die Reihenfolge falsch ist. Zum Beispiel (und ich schreibe in Englisch für Einfachheit):
Anstelle von "X, das Y genannt wird", erhält man "Y genanntes X" (angenommen "genannt" ist ein Wort auf Hebräisch), da die Zeichenkette in diesem Format sein soll:
%Vor%Hinweis: X und Y können entweder RTL- oder LTR-Wörter (und gerade Zahlen) sein.
Die Voraussetzungen sind, dass im Hebräischen das Wort rechts X, dann das Wort "genannt" (aber natürlich auf hebräisch) und dann Y links sein sollte. Wie ich im Beispiel der englischen Analogie gezeigt habe, ist es genau umgekehrt.
a. Ich habe versucht, die Dokumentation zu durchsuchen, und alles, was ich gefunden habe, ist, dass ich wahrscheinlich das Layout überschreiben muss, aber das ist keine gute Lösung. Die Gründe:
b. Ich habe auch versucht zu untersuchen, welche Sonderzeichen die Textrichtung unterschiedlich machen, und es funktionierte, indem am Anfang und Ende des Textes '\ u200f' hinzugefügt wurde, aber es hat ein paar Fehler:
Hier ist ein Beispielcode:
%Vor%c. Ich könnte auch zwischen der '1' und '2' in der Zeichenfolge wechseln, aber dies behandelt nicht alle Fälle, und es ist noch verwirrender für die Übersetzer.
Gibt es eine Möglichkeit, den Benachrichtigungsersteller Texte korrekt behandeln zu lassen (für Benachrichtigungen und TickerText)?
Irgendeine Möglichkeit, es zu optimieren, ohne tatsächlich völlig neue Layouts für die Benachrichtigungen (oder Zeichenketten ändern) zu erstellen, die nicht im selben nativen Stil von Android sind?
Was ist der offizielle Weg, um so etwas zu handhaben?
OK, eine Antwort gefunden, basierend auf diese , this und dies .
Für den obigen Fall:
% 1 $ s wird% 2 $ s
genanntUm es korrekt in Hebräisch zu ändern, müssen Sie das Sonderzeichen "\ u200f" als solches hinzufügen:
%Vor%Sie können auch prüfen, ob das aktuelle Gebietsschema RTL ist, bevor Sie diese Lösung verwenden. Beispiel:
%Vor%Das Ergebnis:
Tags und Links android android-notifications android-support-library hebrew rtl-language