【发布时间】:2018-12-14 07:48:26
【问题描述】:
使用<switch> 元素内的systemLanguage 属性,SVG 文件可以包含多种语言的文本(交替显示)。例如:
- explanation on MDN
- 维基共享资源上的Multilingual SVG example.svg*
- What exactly does the `systemLanguage` attribute in multilingual SVG's refer to?
这对于在多语言网站上显示图表非常方便:我可以使用 <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