使用阿拉伯语时数字会颠倒

The numbers get reversed when use of arabic language

我正在使用 laravel 本地化

这是我使用的代码

<p class="retail-price">@lang('frontend/watch-detail.Reference.retail')
     <span class="prices">
     @if($watch['price'] == 0 || $watch['price'] == NULL) N/A

     @else
         @php
         $text =number_format($watch['price'], 0, ',', ' ');
         @endphp
         {{$text}}
     @endif
     </span>
</p>

这是我得到的阿拉伯语内容 =>Image that I get

虽然我应该得到 30 700!

我不想使用反向功能

出现该问题是因为阿拉伯语是从右向左阅读的。加个if语句检查是不是阿拉伯语就更简单了,然后把它倒过来,这样倒过来的阿拉伯文写法就倒过来不倒了。

您可以将文本包裹在 bdo element 中并将其定义为从左到右:

function changeDir() {
  var el = document.getElementById('bdo0');
  el.dir = el.dir == 'ltr'? 'rtl':'ltr';
  document.getElementById('theDir').textContent = el.dir;
}
<div dir="rtl">هذا رقم: <bdo id="bdo0" dir="ltr">123 456 789</bdo></div>
<button onclick="changeDir()">Change direction</button><span id="theDir"></span>

您不需要任何页内脚本,它应该只是 HTML。