首页 > 解决方案 > 在风景中显示非英文文本

问题描述

我试图text primitive在一个 Scenic 应用程序中显示波斯文本,但 Scenic 显示了其中的一些框X!我尝试使用字体,但没有成功。

这是我的代码:

g
|> text("متن نمونه", t: {0, 700}, fill: :white, font: @font_hash)

我应该在他们的 GitHub 上提出问题还是有解决方案?

谢谢你的帮助。

更新:

我按照自定义字体的说明来缓存字体指标(感谢Aleksei Matiushkin)然后我遇到了另一个问题,如图所示:

错误的波斯语形式

该文本应该是这样的:

正确的波斯语形式

在波斯语中,一个单词中的某些字母可能会连接到其他字母。在这些情况下,这些字母由不同的字符显示。(这里的问题是所有字母都以它们的独立格式显示。另外,文本方向是错误的)

例如:单词“Hello”的正确写法是“سلام”,但在文本中显示为“م‌ا‌ل‌س”。这有点像将“Hello World”显示为“dlroW olleH”

也许编码是我找不到尝试 UTF-8 的方法的问题。或者它可能是文本方向......

标签: elixir

解决方案


完全理解问题。问题是此时的字体渲染引擎相当简单,不支持从右到左、从上到下、字符簇、自动连字等。

简单的字体渲染是它 < 1.0 的原因之一。希望摆脱它目前使用的老式角色图谱技术,转向基于 GPU(Slug)的东西。这将使这些问题变得更容易,但与开源项目不太兼容。

如果您的需求足够强烈,我可以从右到左添加,但这并不容易。


推荐阅读