Android浏览器/ GUI(古吉拉特语)上的印度语言不正确呈现

时间:2012-09-22 07:49:14

标签: android browser fonts render

我有一个专门用于在Android设备上观看的网站,我使用的是古吉拉特语,我在正确渲染古吉拉特语字体时遇到了一个大问题,我至少需要一种解决方法来使古吉拉特语字体正常工作,默认情况下不支持任何Android版本。所以我做到了,

解决方法: - 生根电话 - 为古吉拉特语找到正确的unicode字体 - 使用Gujarati字体替换System / fonts中的现有DroidSansFallback.ttf(对于ICS,在system / etc文件夹中的fontsfallback.xml中进行一些额外更改)

这帮助我了解了古吉拉特语的文本,但没有正确的渲染。

问题:

1)半形式的问题,半形式的字母没有正确渲染,因为它们假设要合并,但它们不会,

如果你在unicode.org上引用这个faq,它清楚地定义了它应该如何呈现,我还使用[unicodeLookup] [7]为每个字母使用html代码,使用了提到的“零宽度连接器”。它没有效果。

无论如何这个问题不是主要问题,因为它不合适但仍然不正确。

2)此渲染问题导致文本打印错误,请参阅下面的两个图像,第一个在PC上正确呈现为可见,第二个是来自Android本机浏览器的屏幕截图

image

标记为1的问题是拳头问题而标记为2的问题是第二个问题,如果你谷歌“梵文 - Unicode Consortium ch09”你会得到一个pdf参考这个问题(只是转到“图9-8。渲染在Devanagari中订购“),它清楚地解释了正确渲染脚本的方法。这些语言似乎不支持android用于渲染脚本,如果可以对Android OS进行任何更改以便按正确的顺序呈现字体,请提供帮助。

这绝对不是字体的问题,因为我尝试过使用Windows操作系统使用的Shruti字体,这是渲染这些复杂脚本的问题

可能的解决方案:(不需要的)

1)将opera mini与位图字体(不是我的解决方案)一起使用

2)使用图片而不是文字(再次不是我的解决方案,因为我的网站将有300行列表,也适用于移动设备,不想增加页面大小)

请提前给我一个妥善解决这个问题的方法!!

2 个答案:

答案 0 :(得分:2)

渲染古吉拉特语(和其他“复杂”脚本,即使用半格式,上下文形式,重新排列等的脚本)需要的不仅仅是字体;它还需要文本布局。文本布局功能通常由主机操作系统或某些情况下的应用程序提供。 Android一直在改进文本布局支持,但即使最新版本仍未完成所有脚本。换句话说:即使对于Android的最新版本,您也无法单独使用字体来解决此问题。

可能的解决方法:

  • 开发某种插件或扩展程序,它可以纠正Gujarati布局并要求用户下载/安装插件以使用您的网站。这可能是一条非常高阻抗的路径,需要在字体,软件开发和目标写入系统知识方面拥有大量专业知识。更不用说给用户带来的不便了。

  • 开发古吉拉特语字体的自定义版本,并在您的网站中使用不需要文字布局的相应自定义文字;通过@ font-face(webfont)提供字体。如果您没有字体开发经验,这也可能是相当具有挑战性的,但可能是最佳途径。

  • 将文字渲染为图像;对已知客户端不支持复杂脚本的情况进行浏览器嗅探并提供图像。这很可能在很多时候失败(很难跟踪浏览器功能,更不用说开始时可靠地检测浏览器的问题)。但保证能给出正确的结果。

答案 1 :(得分:1)

如果您想在所有设备中查看您的网站,只需将webfonts放入您的网站即可。网络字体是您放在服务器上的嵌入字体,并且具有适当的CSS链接,每个人都可以查看,而无需在设备上安装字体。

对于没有网络字体的其他网站,请使用firefox for android,然后获取插件https://addons.mozilla.org/en-us/android/addon/gujarati-fonts-package。现在,您可以查看Gujarati字体中的所有网页,无需任何复杂的过程或root。[/ p>