Указание направления языка строки и правильное ее отображение - PullRequest
0 голосов
/ 27 декабря 2011

У меня есть приложение, которое читает некоторые строки и отображает их в некоторых UILabels, но эти строки не из одного языка, поэтому мне нужно иметь возможность установить выравнивание метки вправо, если строка из языка RTL,и в противном случае.

Так есть прямой способ сделать это, и если нет, то какой лучший способ получить направление языка из строки.Я подумываю проверить первые X символов строки и посмотреть, каков больший процент символов LTR и RTL, чтобы установить выравнивание метки в соответствии с ним.Это хорошее решение, и если да, где я могу найти таблицу, в которой показано, какие юникоды относятся к символам LTR, а какие для RTL.

1 Ответ

0 голосов
/ 27 декабря 2011

В программах с соответствующей поддержкой RTL вам не нужно устанавливать направление для любого простого текста, такого как просто слова и пробелы. Ожидается, что программы будут применять свойства самих символов, как это определено в стандартах кодов символов.

Если фрагмент текста, который будет отображаться как единое целое, содержит знаки пунктуации и / или сочетание букв LTR и RTL, направление должно быть задано либо управляющими символами, либо на более высоком уровне протокола. Я не думаю, что вы должны делать эвристику по этому поводу; скорее общее направление должно быть свойством текстового элемента, определяемого поставщиком информации (например, автором, переводчиком) и сохраняемого вместе с текстом. При локализации программного обеспечения набор локализованных значений для текстов обычно имеет один язык, и общее направление должно быть сохранено как часть набора данных или выведено из языка.

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

...