如何自动“重塑”复杂的脚本?

时间:2011-04-29 02:41:00

标签: android blackberry unicode blackberry-playbook

问题:

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

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

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

提议的解决方案:

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

问题:

是否有任何API可以执行此操作“重塑”或任何其他建议?我愿意在Windows或Linux上使用任何技术(例如Win32 API,Perl,Python,Java等......)

感谢所有建议。

2 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:0)

我很确定Windows对此有apis。首先,看看微软对Windows Glyph Processing的解读。