Показывать неанглийский текст в живописном
Я пытался показать персидский текст text primitive
в приложении Scenic, но Scenic показал несколько коробок с X
внутри них! Я пробовал использовать шрифт, но безуспешно.
Это мой код:
g
|> text("متن نمونه", t: {0, 700}, fill: :white, font: @font_hash)
Должен ли я сделать проблему в их GitHub или есть решение?
Спасибо за вашу помощь.
Обновить:
Я выполнил инструкции для пользовательских шрифтов для кеширования метрик шрифтов (спасибо mudasobwa), тогда у меня возникла еще одна проблема, показанная на этом рисунке:
Этот текст должен быть таким:
В персидском языке некоторые буквы в слове могут соединяться с другими буквами. В этих случаях эти буквы отображаются другим символом. (Проблема здесь в том, что все буквы отображаются в отдельном формате. Кроме того, направление текста неправильное)
Например: правильное написание слова "Hello" - "سلام", но в тексте оно отображается как "مالس". Это похоже на отображение "Hello World" как "dlroW olleH"
Возможно, проблема в кодировке, из-за которой я не смог найти способ попробовать UTF-8. Или это может быть направление текста...
1 ответ
Полностью понимаю суть вопроса. Проблема в том, что движок рендеринга шрифтов в настоящее время довольно упрощен и не поддерживает письма справа налево, вверх-вниз, кластеры символов, автоматические лигатуры и т. Д.
Упрощенный рендеринг шрифтов - одна из причин, по которой он < 1.0. Хотелось бы перейти от старой техники атласа персонажей, которую он сейчас использует, к чему-то, основанному на GPU (Slug). Это сделало бы эти проблемы намного проще, но не очень совместимо с проектом с открытым исходным кодом.
Если ваша потребность достаточно сильна, я могу добавить письмо справа налево, но это непросто.