问题:
我正在尝试使用移动设备(特别是Android,BlackBerry手机和BlackBerry PlayBook)上的阿拉伯语和孟加拉语等复杂脚本显示少量文本。 (应用程序为Allergy Traveler)这些设备无法正确显示文本,但原因各不相同。
在Android和PlayBook上,我可以提供字体,在这种情况下显示字符,但字符连接不正确。显示每个字符时不考虑上下文。
在BlackBerry上,设备没有合适的字体。我可以提供字体,但字体文件远远超过最大字体大小(70kB)。
提议的解决方案:
我认为正确使用上下文来显示单词的过程称为重塑。据推测,这会获取文本并返回另一组要显示的字符。我提出的解决方案是提前进行重塑。在Android上,这将确保文本正确使用上下文,并且在BlackBerry上,这将允许我删除未使用的字符,并减少字体大小。
问题:
是否有任何API可以执行此操作“重塑”或任何其他建议?我愿意在Windows或Linux上使用任何技术(例如Win32 API,Perl,Python,Java等......)
感谢所有建议。
答案 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的解读。