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