正如标题所说,来自 RTL 语言(如波斯语或阿拉伯语)的文本在 android 中显示效果不佳,例如单词“سلام”显示为“م الس”。即使在文本输入中也会出现这个问题(我认为它们是本机和本机 android 文本框支持)有没有办法解决这个问题?
3 回答
缺乏双向和字形整形支持是FireMonkey 平台在所有目标(包括 Windows 和 Mac OSX)上的一个已知限制。
我们将不得不等待 Android 的“本机控件”作为 FireMonkey 的第三方组件,因为它确实存在于 iOS - 例如参见http://www.tmssoftware.com/site/tmsicl.asp。
我找到了这篇很棒的博客文章,其中包含有关 Lazarus/FreePascal 的 Android 本机控件的源代码,非常有趣。但这不适用于“NextGen”Delphi 编译器,它目前在 FPC 方面正朝着不同的方向发展(例如,使用 ObjectivePascal 模式)。
由于它使用原生 Android 控件,它不应该受到与 FireMonkey 相同的限制。
最好的解决方案是 fmxrtl,您可以在
根据 LURD 的建议。
下载并使用DPF Delphi Android Native Components和/或DPF Delphi iOS Native Components。
这将解决 XE7 和更早版本中的问题。
根据 Delphi XE8 beta 的文档,该问题也已解决。
作为最后的手段(如果你愿意的话),有人努力修补 XE5 源代码以启用 BiDi 支持。请参阅:https ://docs.google.com/file/d/0BwumWe43CaijVDRQZzNQbXNSLWc/edit?usp=sharing