7

几年前,我们让一位平面设计师改造了我们的网站。他的结果看起来很棒,但不幸的是,他引入了 Web 浏览器不支持的新字体。

起初我想,“什么!?!”......因为我们的大部分内容都是动态的,并且没有真正的方法来预先制作所有图像。还有多种语言的问题(因为我们知道西班牙语即将出现)。

无论如何,我决定创建一些类来通过 GDI+ 自动生成图像并根据需要以编程方式缓存它们。这解决了我们最初的大部分问题。然而,现在我们的负载急剧增加,我们的 UI 服务器已经耗尽。

现在问题来了……我希望用标准的网络浏览器字体替换大多数动态 GDI+ 图像。我正在考虑保留一些渲染的 GDI+ 图像并将它们放在 resx 文件中,但计划通过 asp:Labels 用 Tahoma 或 Arial 字体替换其中的大部分。

您发现哪个是更好的本地化图像解决方案?

  • 将图像嵌入到 resx
  • 仅将图像 url 添加到 resx
  • 其他一些解决方案

我主要关心的是限制 UI 服务器上的处理。如果是这种情况,与将图像实际嵌入到 resx 相比,将图像 url 添加到 resx 会是更好的解决方案吗?

4

5 回答 5

3

在这里查看我的回复

这可以手动完成,也可以使用某种自动化 (CMS) 系统完成。

基本方法是将图像缓存在特定语言的目录结构中,然后编写一个 HTTP 处理程序来有效地删除额外的目录层。例如:

/images/
    /en/
        header1.gif
    /es/
        header1.gif

在您的标记或 CSS 中,您只需引用 /images/header1.gif。然后,http 处理程序使用会话(如果语言是特定于用户的)或配置(如果特定于站点)来选择从哪个目录提供图像。

这在代码和内容之间提供了一条清晰的线路,并允许客户端缓存。Resx 非常适合小字符串,但我更喜欢这样的系统来处理图像和更大的内容。尤其是在通常很容易切换图像的网络上。

于 2008-12-01T14:59:19.083 回答
3

您应该只需要生成每个图像一次,然后将其保存在硬盘上。您网站上的负载不应增加您必须执行的处理量。话虽如此,听起来您几乎将图像用于您不应该使用的事情。如果有这么多不同的图像,您无法跟上生成它们的速度,那么是时候放弃您的花哨的图像来寻找不应该是图像的东西,并回到纯文本。如果用户没有安装指定的字体,它应该回退到类似的字体。CSS对此有很好的支持。

于 2008-12-01T15:10:01.090 回答
1

几年前我遇到了同样的问题,我们的界面团队将我们指向了 SIFr。http://wiki.novemberborn.net/sifr/

您将字体嵌入到 Flash 电影中,然后使用 SIFr JavaScript 将文本动态转换为字体。因为它是客户端,所以没有服务器端的影响。

如果用户没有安装 Flash 或 JavaScript,他们将获得最接近网络友好的字体。

作为一个额外的好处:因为你的内容仍然是文本——谷歌可以搜索和索引内容——一个巨大的 SEO 优化。

于 2008-12-01T15:04:32.147 回答
0

由于缓存,我宁愿只将图像 url 添加到 resx 中。静态内容(即普通文件)的缓存比生成的内容要好得多。

于 2008-12-01T14:53:07.380 回答
0

我会非常谨慎地将文本放入图像中,具有适当字体系列后备的 CSS 可能是对可访问性和良好 MVC 基础的正确响应。

在真正需要生成的地方,我认为KibleeJayArr概述了很好的解决方案

于 2008-12-01T15:28:31.037 回答