【问题标题】:Localize Images in ASP.NET在 ASP.NET 中本地化图像
【发布时间】:2010-09-24 18:21:48
【问题描述】:

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

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

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

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

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

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

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

【问题讨论】:

    标签: asp.net image localization globalization


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      查看我的回复here

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

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

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

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

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

      【讨论】:

      • 我在这里唯一能想到的是,如果用户更改语言,他们将不得不清除缓存以查看不同的内容。不一定是大事,但需要注意的事情。
      【解决方案3】:

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

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

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

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

      【讨论】:

      • 我不得不说,我使用 SIFR 在质量和性能方面的结果非常好坏参半。警告购买者。
      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

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

        真正需要生成的地方,我认为 KibleeJayArr 勾勒出了很好的解决方案

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2023-04-06
          • 1970-01-01
          • 1970-01-01
          • 2023-03-04
          • 2012-01-25
          • 2019-01-28
          • 2012-12-19
          • 2012-11-01
          相关资源
          最近更新 更多