4

我有一个专门用于在 Android 设备上查看的网站,我使用的是古吉拉特语,但我在正确渲染古吉拉特语字体时遇到了很大问题,我至少想要一个解决方法来让古吉拉特语字体正常工作,默认情况下,任何 Android 版本都不支持. 我就这样做了,

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

这帮助我至少查看古吉拉特语文本,但渲染不正确。

问题:

1) 半格式问题,半格式字母没有正确渲染,因为它们应该组合但它们没有,

如果您在unicode.org上参考此常见问题解答,它清楚地定义了它应该如何呈现,我还通过使用 [unicodeLookup][7] 对每个字母使用 html 代码来使用提到的“零宽度连接器”,但它没有效果。

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

2)这个渲染问题导致文本打印不正确,请参见下面的两个图像,第一个正确渲染为在 PC 上可见,第二个是来自 Android 原生浏览器的屏幕截图

图片

标记为 1 的问题是第一个问题,标记为 2 的问题是第二个问题,如果你用谷歌搜索“天城文 - Unicode Consortium ch09”,你会得到一个关于这个问题的 pdf 文件(只需转到“图 9-8。天城文中的渲染顺序") 清楚地解释了正确呈现脚本的方法。似乎这些语言不支持 android 用来呈现脚本的任何内容,如果可以对 Android OS 进行任何更改以按正确顺序呈现字体,请提供帮助。

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

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

1)使用带有位图字体的opera mini(不是我的解决方案)

2) 使用图片而不是文本(同样不是我的解决方案,因为我的网站将有 300 行列表,而且对于移动设备也是如此,不想增加页面大小)

请给我一个适当的解决这个问题,提前谢谢!

4

2 回答 2

2

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

可能的解决方法:

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

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

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

于 2012-09-28T03:15:10.343 回答
1

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

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

于 2014-11-12T05:46:19.297 回答