切换多语言SVG的显示语言(使用systemLanguage)以在浏览器中显示

时间:2018-12-14 07:48:26

标签: svg browser localization internationalization

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

这对于在多语言网站上显示图表非常方便:我只需要使用<img>标签将图像包括进去,浏览器就会根据选择的语言自动以正确的语言显示文本在浏览器设置中。

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

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

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

还是我必须在服务器端执行此操作?显然,这是可能的,但不太优雅。

Wikimedia项目也注意到了该问题-参见T60920 - lang support for SVG images using SystemLanguageAttribute ill-defined and not properly supported in browsers


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

1 个答案:

答案 0 :(得分:0)

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

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