Microsoft Edge 在 RTL 语言(如希伯来语)中放错了括号

Microsoft Edge misplaced brackets in RTL language like Hebrew

我想在我的应用程序中保存以下文本的翻译:“一些数字(保存时生成)。

Google 翻译是这样做的:

因此,RTL 希伯来语的翻译(正确翻译并由 google 换行)是:מספ כלשהו (נוצ בשמירה)

在 Chrome 或 Firefox 中将此粘贴到我的文本框中是正确的:

但是当我在 Microsoft Edge 中执行相同操作时,括号放错了位置:

为什么会这样?我该如何解决?

这是将从右到左的文本粘贴到使用从左到右书写方向的 <input> 的效果。我在 macOS 上的 Chrome 88 中看到了这种效果,所以也许您的 Chrome 具有自动设置书写方向的扩展或全局样式。

您可以设置 <input>dir attribute:

<input dir="rtl" value="מספר כלשהו (נוצר בשמירה)">

或应用 class 设置 direction CSS property:

<input class="rtl" value="מספר כלשהו (נוצר בשמירה)">
.rtl {
  direction: rtl;
}

在文档级别全局应用书写方向也很常见:

html {
  direction: rtl;
}

...或在 <html> 标签上:

<html dir="rtl">
  <body>
    ...
  </body>
</html>

.rtl {
  direction: rtl;
}

.ltr {
  direction: ltr;
}
<fieldset>
  <legend>dir=rtl</legend>
  <input dir="rtl" value="מספר כלשהו (נוצר בשמירה)">
</fieldset>
<fieldset>
  <legend>dir=ltr</legend>
  <input value="מספר כלשהו (נוצר בשמירה)">
</fieldset>

<fieldset>
  <legend>style.direction=ltr</legend>
  <input class="ltr" value="מספר כלשהו (נוצר בשמירה)">
</fieldset>
<fieldset>
  <legend>style.direction=rtl</legend>
  <input class="rtl" value="מספר כלשהו (נוצר בשמירה)">
</fieldset>

我尝试使用 MS Edge 89.0.774.68 版本测试该问题,我可以重现上述问题。

我注意到,当我尝试粘贴未应用任何 CSS 的文本框中的 מספ כלשהו (נוצ בשמיוה) 希伯来语文本时,显示括号放错了位置.

MS Edge 89.0.774.68的测试结果:

此外,我用 MS Edge Canary、Dev 和 Beta 版本测试了这个问题。

我注意到此问题已在 MS Edge 91.0.851.0 版本中修复。

使用 MS Edge 91.0.851.0 的测试结果:

当您将 MS Edge 浏览器 更新到 91.x 版本时,此问题将得到解决。

感谢您的理解。