Цифры меняются местами при использовании арабского языка

Я использую локализацию 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>

Вот что я получаю по-арабски => Изображение, которое я получаю

Пока я должен получить 30 700!

Я не хочу использовать обратную функцию

2 ответа

Решение

Эта проблема возникает из-за того, что арабский читается справа налево. Было бы проще добавить if оператор, чтобы проверить, если это арабский, а затем поверните его, чтобы перевернутая арабская письменность была возвращена к необратимой.

Вы можете обернуть текст в элемент bdo и определить его слева направо:

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.

Другие вопросы по тегам