我无法在 SVG 中的曲线路径上正确显示 RTL 文本。 试过这个代码盘 但无法使其正确显示 尝试添加方向,写作模式,目录,覆盖 - 双向 - 没有任何效果 有没有办法在不反转文本的地址字节或路径点的情况下做到这一点?将来我计划使用 Eng/Heb 混合,所以真的不想反转文本
<!-- Learn about this code on MDN: https://developer.mozilla.org/en-US/docs/Web/SVG/Element/textPath -->
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 22.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 177.5 175" xml:space="preserve">
<defs>
<pattern id="image" x="0" y="0" patternUnits="userSpaceOnUse" height="200" width="200">
<image x="0" y="0" xlink:href="http://i.imgur.com/7Nlcay7.jpg" width="200" height="200"/>
</pattern>
</defs>
<ellipse id="FillThisWithColorOrPattern" fill="url(#image)" stroke="#333333" stroke-miterlimit="10" cx="90" cy="87" rx="87.5" ry="82"/>
<circle id="Inner_1_" fill="#FF0000" cx="90" cy="87" r="35"/>
<path id="TextLine1_Path" fill=None
d="M90,137.5c-27.8,0-50.5-22.7-50.5-50.5S62.2,36.5,90,36.5s50.5,22.7,50.5,50.5S117.8,137.5,90,137.5z M90,37.5
c-27.3,0-49.5,22.2-49.5,49.5s22.2,49.5,49.5,49.5c27.3,0,49.5-22.2,49.5-49.5S117.3,37.5,90,37.5z"/>
<text stroke="#00FF00">
<textPath xlink:href="#TextLine1_Path">
שלום כיתה אלף
</textPath>
</text>
</svg>
AFAIK,这是渲染应用程序/库中的一个错误。由于复杂语言脚本的双向和整形是一个视觉问题,它不是SVG语言/标准本身的逻辑问题。
无论如何,从问题发布时开始,情况发生了变化。截至目前 2021 年 12 月,使用 Mac OS 11.6.1:
- Firefox/95.0渲染它很好。
- Inkscape/1.1-alpha 渲染得很好。
- Chromium/90.0 使其反转且未成形(非连接字母(。
- Safari/15.1 将其呈现为反转且未成形(非连接字母(。
在 2023 年,这在 Chrome 中得到了修复,但在 Safari 中被破坏了。 我的解决方案是硬编码反转字符串并执行 unicode-bidi="bidi-override" 方向="ltr"。 看这里: https://stackoverflow.com/a/75411819/664456