首页 > 解决方案 > 切换多语言 SVG 的显示语言(使用 systemLanguage)在浏览器中显示

问题描述

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

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

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

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

还是我必须在服务器端做这个?这显然是可能的,但相当不优雅。

Wikimedia 项目也注意到了这个问题 - 请参阅T60920 - 使用 SystemLanguageAttribute 的 SVG 图像的语言支持定义不明确,并且在浏览器中没有得到适当的支持


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

标签: svgbrowserlocalizationinternationalization

解决方案


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

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


推荐阅读