BEARBEITEN
Ich portiere meine App auf arabisches Gebietsschema. Ich habe einige getString () mit Parametern wie:
%Vor% wo <string name="distance">%1d km</string>
Voraussetzung ist, dass ich es auf Arabisch so darstellen soll: "2.3 كم".
Wenn ich das Gebietsschema für Saudi-Arabien (Land="sa") oder UAE (Land="ae") einstelle, wird die Nummer in Indien angezeigt, aber mein Kunde möchte sie auf Arabisch.
Die Lösung hier soll verwendet werden Ägypten als ein Land in der Gegend, aber das ist nicht möglich für mich.
Ich habe es versucht:
%Vor%wie in diese Frage vorgeschlagen , aber danach wird das Land ignoriert, sodass sowohl SA- als auch AE-Ländereinstellungen die Zeichenfolgen in der Standarddatei verwenden.
Es gibt ein solches Problem in Googles Bugtracker: arabische Ziffern in arabischer Sprache interad des hindu-arabischen Zahlensystems
Wenn insbesondere das Gebietsschema "Ägypten" aufgrund eines Kundenproblems nicht funktioniert (ich kann es verstehen), dann können Sie Ihre Zeichenkette in andere westliche Ländereinstellungen formatieren. Zum Beispiel:
%Vor% Wenn die Lösung mit dem neuen Locale
überhaupt nicht funktioniert, gibt es einen hässlichen Workaround:
(und Variationen dazu mit Unicode-Übereinstimmung (U + 0661, U + 0662, ...). Weitere ähnliche Ideen anzeigen hier )
Upd1: Um zu vermeiden, dass Formatierungszeichenfolgen nacheinander einzeln aufgerufen werden, würde ich vorschlagen, eine kleine Tool-Methode zu erstellen:
%Vor% Oder überschreiben Sie den Standard TextView
und behandeln Sie ihn in setText(CharSequence text, BufferType type)
Ich hoffe, es hilft
Legen Sie Ihr TypeFace wie folgt für Arabisch fest
%Vor%abcd ist arabische Schrift.
%Vor%