Arabische Zahl in arabischem Text in Android

8

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.

    
kingston 14.12.2015, 12:13
quelle

3 Antworten

14

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:

%Vor%

(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)

%Vor%

Ich hoffe, es hilft

    
Konstantin Loginov 05.01.2016, 13:07
quelle
2

Legen Sie Ihr TypeFace wie folgt für Arabisch fest

%Vor%

abcd ist arabische Schrift.

%Vor%     
Devendra Kulkarni 14.12.2015 12:43
quelle
1
%Vor%     
Krunal Patel 06.01.2016 06:23
quelle

Tags und Links