3

问题:

我正在尝试在移动设备(特别是 Android、BlackBerry 手机和 BlackBerry PlayBook)上使用复杂的脚本(例如阿拉伯语和孟加拉语)显示少量文本。(应用程序是Allergy Traveler)这些设备都无法正确显示文本,但原因不同。

在 Android 和 PlayBook 上,我可以提供一种字体,在这种情况下字符会显示,但字符连接不正确。每个字符的显示不考虑上下文。

在 BlackBerry 上,设备没有合适的字体。我可以提供一种字体,但是字体文件远远超过了最大字体大小(70kB)。

建议的解决方案:

我认为正确使用上下文来显示单词的过程称为重塑。据推测,这将获取文本并返回要显示的一组替代字符。我提出的解决方案是提前进行这种重塑。在 Android 上,这将确保文本正确使用上下文,而在 BlackBerry 上,这将允许我删除未使用的字符并减小字体大小。

问题:

是否有任何 API 可以进行这种“重塑”或任何其他建议?我愿意在 Windows 或 Linux 上使用任何技术(例如 Win32 API、Perl、Python、Java……)

感谢所有的建议。

4

2 回答 2

3

为了在 android 上重塑阿拉伯语,可以使用 Amr Gawish 的阿拉伯语重塑器框架,查看http://bar.amr-gawish.com/。但是,您应该注意,尽管它正确地重塑并连接了正常的阿拉伯字母和文本,但如果文本包含变音符号,它就无法连接阿拉伯字母。

我注意到 android 市场中的一个应用程序可以使用变音符号加入/重塑阿拉伯文本,但我不确定他们曾经这样做过,它可能是他们自己的内部框架。我也有兴趣寻找重塑 API,特别是那些也可以处理阿拉伯变音符号的 API。

希望以上链接对您有所帮助!如果您发现更好的东西,请告诉我们。

编辑:以下也可以做变音符号 - https://github.com/AhmedEssam/Better-Arabic-Reshaper

于 2011-06-25T22:38:57.120 回答
0

我很确定 Windows 有这方面的 api。首先,看一下 Microsoft 对Windows Glyph Processing的描述。

于 2011-04-29T03:17:25.800 回答