GH GambleHub

RTL qoʻllab-quvvatlash

1) Qonunning

1. RTL - bu matnning tarjimasi emas, balki fikrlash oynasi. Oʻqlar, oʻqish tartibi, fokus tartibi, imo-ishoralar va navigatsiya oʻzgaradi.
2. left/right oʻrniga mantiqiy CSS xususiyatlari. ’margin-inline-start’,’inset-inline-end’,’border-start-start-radius’va boshqalarga o’ting.
3. Biz butun dunyo bo’ylab LTR parchalarini izolyatsiya qilamiz. Sonlar, URL, kodlar, e-mail va IBAN har doim chapdan oʻngga oʻqiladi.
4. Maʼnoga emas, yoʻnalishga bogʻliq boʻlgan narsalarni aks ettiring. «Play», «↙» va soat/jarayon ikonalari aks ettirilmasligi mumkin.
5. Psevdo-RTL testini o’tkazing. Chiqishdan oldin’dir =’rtl’’/’ direction: rtl’va soxta tarjimalarni kiriting.

2) Yo’nalish: ’dir’va mantiqiy xossalari

Hujjat/ildizda global:
html
<html lang="ar" dir="rtl"> … </html>
Mantiqiy xossalar (left/right almashtirish):
css
.card { padding-inline: 16px; margin-inline: 12px; }
.sidebar { inset-inline-start: 0; }
.button { border-start-start-radius: 12px; border-end-end-radius: 12px; }
Yo’nalish bo’yicha selektorlar:
css
:root:dir(rtl). breadcrumb { flex-direction: row-reverse; }
:root:dir(ltr). breadcrumb { flex-direction: row; }
Foydalanuvchi kontentining lokal avto yoʻnalishi:
html
<p dir="auto">…</p>

3) BiDi va aralash matnni izolyatsiya qilish

Arab/ibroniycha lotin/sonlar bilan aralashishi belgilar tartibini buzadi. BiDi izolyatsiyasidan foydalaning:
  • Tags:’’(yo’nalishni izolyatsiya qiladi),’’(majburan qayta belgilaydi).
Yunikod markerlari:
  • ’\u2066’LRI/’\u2067’RLI - LTR/RTL izolatsiyasining boshlanishi, ’\u2069’PDI - oxiri,
  • ’\u200E’LRM/\u200F’RLM - qisqa qo’shimchalar uchun bir baytli markerlar.
Hisobvaraq raqami va valyutasi bo’lgan iboraga misol:
html
<span dir="rtl">
سحب <bdi dir="ltr">IBAN AE070331234567890123456</bdi> بمبلغ
<bdi dir="ltr">2,000. 00 UAH</bdi>
</span>

4) Navigatsiya, ierarxiya va maketlar

Breadcrumbs: ko’zgu tartibi: «الصفحة الريسية الرهان التاكيد».
Panellar/menyu: asosiy navbar - oʻngda; «orqaga» chap tomonga (RTL satrining boshiga).
Kartochkalar/ro’yxatlar: sarlavhalarni inline-start bo’yicha tekislang; maqom ikonalari - inline-end.
Karusellar va svayplar: inline-start tomonga siljish (RTLda - o’ngga). Sahifa indikatorlari ham oynali.
Paginatsiya: «keyingi» o’qi inline-start, «oldingi» o’qi inline-end.

5) Ikonkalar va tasvirlar

Yo’naltirilgan piktogrammalarni aks ettiring: «oldinga/orqaga», «pley- boshi», «burish/burish».
Matnlar, grafiklar, soatlar, brendlarning logotiplarini aks ettirmang.

Texnik jihatdan:
css
.rtl-mirror { transform: scaleX(-1); transform-origin: center; }
html:dir(rtl). icon--arrow { transform: scaleX(-1); }

SVG uchun:’transform-box: view-box;’dan foydalaning.
Rasmlar ichidagi matndan qoching → alohida qatlamlarda joylashtiring.

6) Shakllar va kirish

Kontent boʻyicha tekislash:’text-align: start;’, son/summa/URL/e-mail - LTR.

Atributlar:
html
<input type="email" dir="ltr" inputmode="email" autocomplete="email">
<input type="number" dir="ltr" inputmode="numeric" pattern="[0-9]">
<input type="tel" dir="ltr" inputmode="tel" autocomplete="tel">

Placeholder/label mahalliylashtirilgan, ammo caret sonlar/kodlarda chapdan oʻngga qarab yurishi kerak.
Niqoblar: qattiq «tutib qolmang»; qoʻyish va tanlashni qoʻllab-quvvatlang.
Ro’yxat/radio/chekbox: nazoratning o’ng tomonidagi imzolar, 44 × 44 px ≥ bosish zonasi.
Slayderlar min → max: RTLda minimal oʻng chekkada, maksimal chapda (yoki oʻlchamni inversiyasiz va LTR raqamlarini koʻrsating).

7) Sanalar, sanalar, valyutalar

Arab lokallarida andoza arab indotsifrlari (٠١٢٣٤٥٦٧٨٩) qoʻllaniladi. Yechim - biznes-siyosat:
  • Moliyaviy UIda ko’pincha interoperabellik uchun lotin raqamlari (0-9) ko’rsatiladi, lekin format (bo’shliqlar/belgilar) - lokal bo’yicha.
Maqsadli lokal bilan’Intl.’dan foydalaning:
js new Intl. NumberFormat('ar', { style:'currency', currency:'AED' }). format(2000);
new Intl. DateTimeFormat('he-IL', { dateStyle:'medium', timeStyle:'short' }). format(new Date());

Nisbiy vaqt (’Intl. RelativeTimeFormat’).

8) Bosmaxona va o’qish qobiliyati

Yaxshi arab/yahudiy grafemasi va ligaturali shriftlar (Arabic shaping).
Satrlararo oraliq 1. 4–1. 6; tor trekinglardan qoching.
Arab tilida kashida (shtrixlarni uzaytirish) uchun kenglik bo’yicha tekislashda ehtiyotkorlik bilan yoqing (’text-justify: inter-word; ’/dvigatelni qo’llab-quvvatlash).
Arab satri ichidagi lotin yozuvini taqiqlang (vertikal ritmni buzadi).

9) Grafiklar, shkalalar va jadvallar

X o’qlari o’ngdan chapga; afsona inline-end boʻyicha tekislanadi.
Jadvallar ustuni: «birlamchi» ustun (nomi/o’yin) - o’ngda; raqamlar/summalar LTR bo’lib qolishi va inline-end bo’yicha tekislanishi mumkin.

«+/ −» belgilari va foizlar - sondan oldin, LTR raqamlari izolyatsiya qilingan:
html
<bdi dir="ltr">+12. 5%</bdi>

10) A11y va skrinridyerlar

’lang =’ ar’’/’ lang =’he’qoʻyilganiga ishonch hosil qiling: TTS dvigateli toʻgʻri ovozni tanlaydi.
Yo’nalishdagi dinamik o’zgarishlarni ehtiyotkorlik bilan ayting - keraksiz bo’laklarda’dir’almashtirmang.
Hayot yangilanishlari (’aria-live = «polite»’) - yo’nalishlarni aralashtirmasdan matn.
Piktogrammalar matn belgilarisiz ma’no bermaydi; ’aria-label’ dan foydalaning.

11) iGaming xususiyatlari

11. 1 Kupon stavkasi (betslip)

Maydon tartibi: summa → koeffitsiyent → potentsial yutuq; o’ngdagi imzolar, raqamlar/LTR koeffitsiyentlari.
Koeffitsiyentlar yangilanishini yumshoq belgilang; yuqoriga/pastga ko’rsatkichlarni ko’rsatishning hojati yo’q (narx yo’nalishining ma’nosi universal).

11. 2 O’yinlar/bozorlar

Ligalar/voqealar ro’yxatini inline-start bo’yicha tekislang (RTLda - o’ngda).
Taymerlar va hisob - LTR’dir = «ltr»’jadval raqamlari bilan (’font-variant-numeric: tabular-nums;’).

11. 3 To’lovlar/KTS

IBAN/BIC/telefon doimo LTR.
Bank nomlari/manzili - RTL.
Xatolar/validatorlar oʻngdagi markerlarni koʻrsatadi.

11. 4 Turnir/peshqadamlar

Ustunlar: pozitsiya, nik, ko’zoynak - o’ngdagi pozitsiya; ko’zoynaklaringizni inline-end bo’yicha tekislang (LTR raqamlari).

12) Ishlab chiqarish va test sinovlari

Qizdagi psevdo-RTL:
css html. debug-rtl { direction: rtl; }
RTL ichidagi piktogrammalar (faqat yoʻnaltirilgan):
css html:dir(rtl). icon-dir { transform: scaleX(-1); }
Avtotestlar (g’oyalar namunasi):
  • Maket snapshotlari’dir = rtl’.
  • CSS (lint) da’left/right’mavjud emasligini tekshirish.
  • E2E: tabulyatsiya tartibi, karusel svayplari, slayderlarning xulq-atvori.
  • Arab matnli vizual testlar + LTR-qo’shimchalar (e-mail, summa).

13) Dizayn-tizim tokenlari (misol)

json
{
"direction": {
"supported": ["ltr", "rtl"],
"rtlLocales": ["ar", "he", "fa", "ur"]
},
"layout": {
"gap": { "sm": 8, "md": 12, "lg": 16 },
"useLogicalProps": true
},
"icons": {
"autoMirror": true,
"exclude": ["logo", "chart", "clock", "play"]
},
"forms": {
"numericDir": "ltr",
"minTap": 44
},
"a11y": { "contrastAA": true, "live": "polite" }
}

14) Snippetlar

Dasturdagi yoʻnalishni oʻzgartirish (React):
tsx import { useEffect } from "react";

export function useDirection(locale: string) {
useEffect(() => {
const lang = locale. split("-")[0];
const isRTL = ["ar", "he", "fa", "ur"].includes(lang);
const html = document. documentElement;
html. setAttribute("dir", isRTL? "rtl": "ltr");
html. setAttribute("lang", locale);
}, [locale]);
}
Roʻyxatlar/bredkromblarni uygʻunlashtirish:
css
.breadcrumb { display:flex; gap:8px; }
html:dir(rtl). breadcrumb { flex-direction: row-reverse; }
.breadcrumb__sep { transform: scaleX(var(--dir,1)); }
html:dir(rtl). breadcrumb__sep { --dir: -1; }
LTR sifatida sonlar va summalar:
html
<span>الربح المحتمل: <bdi dir="ltr">2,000. 00 UAH</bdi></span>
RTL uchun slayder min → max:
css html:dir(rtl) input[type="range"] { direction: rtl; }

15) Antipatternlar

Qattiq’left/right’uslublarida → RTL buziladi.
Sonlarni kiritish/IBAN/URL’siz’dir = «ltr»’→ «singan» caret va tartib.
Logotiplar/grafiklar/soatlarni oynalash.
Bir xil piktogrammalar to’plami har doim aks ettiriladi - ma’noda istisnosiz.
Karusellar, listalkalar va paginatsiyalar ag’darilmagan.
BiDi izolyasiyasiz aralash satrlar → «raqs» belgilari.

16) Metrika

RTL coverage: RTL revyudan oʻtgan ekranlar ulushi.
BiDi-nuqsonlar/reliz: aralash matn xatolari soni.
Asosiy vazifalarni bajarish vaqti (LTR vs RTL):> 5-10% farq qilmasligi kerak.
Raqamlar shakliga kiritishda xato roʻy berdi: notoʻgʻri caret/niqobli hodisalar ulushi.
CLS/perf:’dir’-oʻchirilganda maket sakrashsiz.

17) QA-chek-varaq

Yo’nalish va maket

  • ’’RTL lokallari uchun;’: dir (rtl)’uslublari qoʻllanilmoqda.
  • ’left/right’oʻrniga mantiqiy xususiyatlar.
  • Navigatsiya/bredkramplar/karusellar/paginatsiya to’g’ri aks ettiriladi.

Matn va BiDi

  • Raqamlar/valyutalar/URL/e-mail -’dir = «ltr»’yoki’’.
  • Aralash satrlarda «teskari» belgilar yoʻq.
  • ’Intl.’orqali sanalar/valyutalar mahalliylashtirilgan.

Shakllar

  • Imzolar o’ngda; 44 ≥ 44 px × bosish zonalari.
  • Telefon/IBAN/summasi - LTR caret, to’g "ri niqoblar.
  • Slayderlar/minimumlar/maksimumlar o’zlarini kutilgan tarzda tutadilar.

Ikonkalar/Tasvirlar

  • Faqat yoʻnaltirilganlar koʻzgu qilurlar. istisnolarga rioya qilingan.
  • Rasmlarda mahalliy versiyasiz matn yoʻq.

A11u/Spektakl

  • ’lang’qo’yilgan; SR toʻgʻri oʻqiydi.
  • ’dir’almashtirilganda ortiqcha qayta chizish yoʻq.
  • Kontrast/fokus halqa AA ga mos keladi.

18) Dizayn-tizimdagi hujjatlar

Direction & BiDi boʻlimi: oynalar siyosati, ikonkalar uchun istisnolar roʻyxati.
RTL tokenlari va linter uslublari toʻplami (taqiqlangan’left/right’).
Do/Don’t galereyasi: karusellar, bredkramblar, son shakllari, slaydlar, grafiklar.
Psevdo-RTL skriptlari va revyu chek varaqlari.

Qisqacha xulosa

To’g’ri RTL qo’llab-quvvatlash - bu mantiqiy CSS xususiyatlari, ongli ko’zgu va qat’iy BiDi izolyatsiyasi. LTR’dagi URL/sonlarni izolyatsiya qiling, ko’zgu navigatsiyasi va yo’naltirilgan piktogrammalarni izolyatsiya qiling, shakllarni oldindan aytib bo’ladigan, grafiklarni esa o’qish mumkin. Shunday qilib, arab, ivrit, fors yoki urdu uchun interfeys tabiiy va tez bo’ladi - kupon stavkalari va to’lov shakllaridan tortib turnir jadvallari va live-o’yinlargacha.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Telegram
@Gamble_GC
Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.