Можно ли распознать в Android / Java, если текст строки пишется справа налево? - PullRequest
3 голосов
/ 01 февраля 2012

Я пишу приложение для Android, и мне нужно распознать, написан ли у меня текст в строке на языке RTL (справа налево)?Спасибо!

Ответы [ 2 ]

5 голосов
/ 06 октября 2015

Проверьте, записана ли данная строка в RTL, проверив, находится ли самый первый символ в диапазоне символов Unicode RTL.

  public static boolean checkRtl ( String string ) {
    if (TextUtils.isEmpty(string)) {
        return false;
    }
    char c = string.charAt(0);
    return c >= 0x590 && c <= 0x6ff;
}
1 голос
/ 19 мая 2012

Две вещи:

A / http://pastebin.com/e276zn6y Javascript код для определения сценария персонажа. Должен дать вам идею. И с помощью:

B / ftp: //unicode.org/Public/UNIDATA/extracted/DerivedBidiClass.txt

# Bidi_Class=Right_To_Left
0590          ; R # Cn       <reserved-0590>
05BE          ; R # Pd       HEBREW PUNCTUATION MAQAF
05C0          ; R # Po       HEBREW PUNCTUATION PASEQ
05C3          ; R # Po       HEBREW PUNCTUATION SOF PASUQ
05C6          ; R # Po       HEBREW PUNCTUATION NUN HAFUKHA
05C8..05CF    ; R # Cn   [8] <reserved-05C8>..<reserved-05CF>
05D0..05EA    ; R # Lo  [27] HEBREW LETTER ALEF..HEBREW LETTER TAV

[...] усеченный

, который дает вам направление всех блоков (показывает начало секции RTL), вы можете выяснить остальные.

EDIT: Вы также можете проверить наличие символов формата справа налево (U + 20xx), см. http://www.unicode.org/charts/PDF/U2000.pdf

...