Использование пользовательских шрифтов со смешанным языком текста на iOS и Android
Мы работаем над приложением, которому требуется текст на языках RTL и LTR на одном экране, часто в одном предложении, с использованием пользовательских шрифтов. Это создает несколько нетривиальных проблем:
- В дизайне используются разные пользовательские шрифты для каждого из языков LTR и RTL. Если мы используем шрифт LTR, текст RTL выглядит не очень хорошо, и наоборот.
- RTL-шрифты имеют большую высоту строки, чем LTR-шрифты, поэтому, если высота строки отрегулирована для RTL, она запутывается в LTR и наоборот.
Одним из предложений является использование текстовой разметки для языковых границ в многострочном тексте. Затем на основе разметки мы будем использовать эквивалент <span>
s в текстовых метках и применять собственный шрифт для каждого диапазона с пользовательской высотой строки. Это звучит как решение, которое потребует значительной обработки текста на устройстве и, возможно, не будет переносимым, поэтому возникают следующие вопросы:
- Кто-нибудь успешно пробовал этот подход для рендеринга текста на разных языках?
- Есть ли другие предложения по отображению текста на разных устройствах на разных устройствах?
1 ответ
На Android вы можете добавить различные макеты xmls как для ltr, так и для rtl, точно так же, как вы делаете для mdpi/hdpi/ и т.д.. Это подход (насколько я знаю), который вы должны принять. Я понятия не имею.