svg - 切换多语言 SVG 的显示语言(使用 systemLanguage)在浏览器中显示
问题描述
使用元素systemLanguage
内的属性,SVG 文件可以包含多种语言的文本(交替显示) 。<switch>
参见例如:
这对于在多语言网站上显示图表非常方便:我可以使用<img>
标签包含图像,浏览器将根据浏览器设置中选择的语言自动以正确的语言显示文本。
但是,通常仅依靠浏览器设置并不好,因为用户可能希望以不同的语言查看站点,并且要求他们摸索设置是不切实际的。所以大多数网站都提供了一种切换显示语言的方法。例如:
如果我想提供这种语言切换,如何切换多语言 SVG 文件的显示语言?我没有发现允许更改浏览器选择的显示语言的 HTML 标签、DOM API 或类似的东西。
还是我必须在服务器端做这个?这显然是可能的,但相当不优雅。
Wikimedia 项目也注意到了这个问题 - 请参阅T60920 - 使用 SystemLanguageAttribute 的 SVG 图像的语言支持定义不明确,并且在浏览器中没有得到适当的支持。
tl;dr:在浏览器中显示多语言 SVG(使用systemLanguage
)时,我可以在不影响 SVG 文件本身的情况下影响 SVG 的显示语言吗?
解决方案
如果您不想依赖浏览器(如您所说),则无论如何都需要将图像渲染为 png(对于每种语言)并将其嵌入为 PNG,就像 Wikipedia/Wikimedia 所做的那样。特别是多语言文件不受浏览器完全支持,并且可能呈现不同(在 Chrome 和 Firefox 和 Internet Explorer 之间,...)
但是,如果您想以特定语言嵌入 SVG,则将其嵌入为多语言文件没有任何意义。
推荐阅读
- javascript - 使用 multer 和 vaadin-upload (polymer) 上传图像时我得到未定义的值
- java - Android:在条码扫描仪构建器窗口上打印数据
- django - Django 站点未更新
- mysql - 在单个 json 字符串 MySQL 中组合多行
- r - 将文本重新格式化为 R 中的表格
- sql - 在创建时间桶时创建用于修改变量的循环(Postgresql)
- java - 对于 JSP 类型,方法 extractFileName(Part) 未定义(完整代码)
- rpa - 是否可以在 Orchestrator 中运行两个进程?
- asp.net - 将 HTML 传递给自定义标签助手
- python - 如何在张量流中将 n-hot 向量转换为多标签?