2 回答
TA贡献1780条经验 获得超5个赞
可悲的是,我认为没有一个好的解决方案(“好”的意思是“做得很好,随时可用”)。对于我们自己的支持希伯来语的Android应用程序,我们使用了我们多年开发的自定义渲染机制。渲染机制可以完成所有工作:专有字体;双向(双向)分析;字形放置 换行分析;文字流 等等。尝试使用本机Android文本处理功能(尤其是4.2之前的版本)的一些问题是:
字体真烂。但是,您可以打包非常好的第三方字体(如DejaVu)。如果需要的话,正确的字体可以将nekudot和te'amim 1定位成奇迹。(我同意你关于重要指向正确的位置如何,阅读希伯来文与错位的nekudot就像读一满屏的验证码。)
越野比迪车分析。更糟糕的是,对于不同版本的Android,这些错误似乎有所不同。修改文本以使其包含策略性放置的bidi格式代码(RTL标记,LTR标记等)可以克服许多此类错误(请参见此处的讨论,这不是Android特有的)。但是,这样做很麻烦,并且由于Android版本之间的不一致,因此很难预先预测框架将需要什么帮助。
没有(或者没有考虑周全)框架级别的从右到左的问题意识。例如,祝您好运,让滚动条显示在希伯来语TextView的左侧。对于我们的应用程序,我们必须构建一个完整的滚动条系统才能使它按我们想要的方式工作。(好认为Android是开源的!)
行和单词中断分析不良。经过测试的至少一个Android早期版本认为每个nikud标记都是一个单词边界。当涉及到换行符时,系统通常不知道如何处理希伯来语标点符号,例如maqaf,gershayim或sof pasuk。
系统不会将某些较新的Unicode字符(例如HOLAM HASER FOR VAV-U + 05BA-Unicode 5.0的新字符)识别为希伯来语脚本。
我的建议是,除非您准备自己构建一个从上到下的文本处理系统,否则您将放弃在4.2之前的Android版本上使用高质量的文本显示,特别是在需要支持nekudot和te'amim的情况下。同样,计划使用我在上面的前两点中提到的技术。
- 2 回答
- 0 关注
- 568 浏览
添加回答
举报