【问题标题】:Switch the display language of multi-language SVG (using systemLanguage) for display in browser切换多语言 SVG 的显示语言(使用 systemLanguage)在浏览器中显示
【发布时间】:2018-12-14 07:48:26
【问题描述】:

使用<switch> 元素内的systemLanguage 属性,SVG 文件可以包含多种语言的文本(交替显示)。例如:

这对于在多语言网站上显示图表非常方便:我可以使用 <img> 标签包含图像,浏览器将根据在浏览器设置。

但是,通常仅依靠浏览器设置并不好,因为用户可能希望以不同的语言查看网站,并且要求他们摸索设置是不切实际的。所以大多数网站都提供了一种切换显示语言的方法。例如:

  • MDN 页面顶部有一个“语言”按钮
  • Debian website 在页脚中有链接(“此页面还提供以下语言版本”)

如果我想提供这种语言切换,如何切换多语言 SVG 文件的显示语言?我没有发现允许更改浏览器选择的显示语言的 HTML 标签、DOM API 或类似的东西。

或者我必须在服务器端执行此操作吗?这显然是可能的,但相当不雅。

维基媒体项目也注意到了这个问题 - 请参阅 T60920 - lang support for SVG images using SystemLanguageAttribute ill-defined and not properly supported in browsers


tl;dr:在浏览器中显示多语言 SVG(使用 systemLanguage)时,我可以在不影响 SVG 文件本身的情况下影响 SVG 的显示语言吗?

【问题讨论】:

  • 看起来不太好。我可以想象一些不太好的 JavaScript hack,但还没有找到任何直接影响 systemLanguage 属性的方法。
  • @RobbyCornelissen:是的,这就是我所担心的。我很惊讶这不包括在规格中,这似乎是一个明显的遗漏。好吧,也许不是那么明显......
  • 不,您不能从网页更改系统语言,只能由浏览器的用户完成。

标签: svg browser localization internationalization


【解决方案1】:

如果您不想依赖浏览器(如您所说),则无论如何都需要将图像渲染为 png(对于每种语言)并将其嵌入为 PNG,就像 Wikipedia/Wikimedia 所做的那样。特别是多语言文件不受浏览器完全支持,并且可能呈现不同(在 Chrome 和 Firefox 和 Internet Explorer 之间,...)

但是,如果您想以特定语言嵌入 SVG,将其嵌入为多语言文件没有任何意义。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    相关资源
    最近更新 更多