GH GambleHub

RTL-Unterstützung

1) Grundsätze

1. Bei RTL geht es nicht darum, einen Text zu übersetzen, sondern das Denken zu spiegeln. Achsen, Leserichtung, Fokusreihenfolge, Gesten und Navigation ändern sich.
2. Logische CSS-Eigenschaften statt links/rechts. Wechseln Sie zu 'margin-inline-start', 'inset-inline-end', 'border-start-start-radius' usw.
3. Global schalten wir die Richtung ein, lokal isolieren wir die LTR-Fragmente. Zahlen, URLs, Codes, E-Mails und IBANs werden immer von links nach rechts gelesen.
4. Spiegeln Sie das, was von der Richtung abhängt, nicht von der Bedeutung. „Play“, „↗“, „↙“ und Uhren/Prozess-Symbole können nicht gespiegelt werden.
5. Testen Sie Pseudo-RTL. Schalte' dir = 'rtl '/' Richtung: rtl' und Pseudo-Übersetzungen ein, bevor du herauskommst.

2) Richtung: 'dir' und logische Eigenschaften

Global auf Dokument/Wurzel:
html
<html lang="ar" dir="rtl"> … </html>
Logische Eigenschaften (Ersetzen von links/rechts):
css
.card { padding-inline: 16px; margin-inline: 12px; }
.sidebar { inset-inline-start: 0; }
.button { border-start-start-radius: 12px; border-end-end-radius: 12px; }
Selektoren nach Richtung:
css
:root:dir(rtl). breadcrumb { flex-direction: row-reverse; }
:root:dir(ltr). breadcrumb { flex-direction: row; }
Lokaler Auto-Fokus von Nutzerinhalten:
html
<p dir="auto">…</p>

3) BiDi und gemischte Textisolierung

Das Mischen von Arabisch/Hebräisch mit Latein/Zahlen bricht die Reihenfolge der Zeichen. Verwenden Sie BiDi-Isolierung:
  • Tags:''(isoliert die Richtung),'' (erzwingt die Überschreibung).
Unicode-Token:
  • „\u2066 “LRI/„\u2067“ RLI - Beginn der LTR/RTL-Isolation, „\u2069 “PDI - Ende,
  • '\u200E 'LRM/'\u200F' RLM sind Single-Byte-Token für kurze Einsätze.
Beispielphrase mit Kontonummer und Währung:
html
<span dir="rtl">
سحب <bdi dir="ltr">IBAN AE070331234567890123456</bdi> بمبلغ
<bdi dir="ltr">2,000. 00 UAH</bdi>
</span>

4) Navigation, Hierarchie und Layouts

Breadcrumbs: die Ordnung spiegel-: "الصفحة الرئيسية‹ الرهان "التأكيد".
Panels/Menüs: Haupt-Navbar - rechts; „zurück“ zeigt nach links (zum Anfang der RTL-Zeile).
Karten/Listen: Titel nach Inline-Start ausrichten; Statussymbole - zum Inline-Ende.
Karussells und Streiche: Scrollen in Richtung Inline-Start (bei RTL nach rechts). Die Seitenindikatoren sind ebenfalls gespiegelt.
Pagination: Der Pfeil „next“ geht an inline-start, „previous“ an inline-end.

5) Icons und Bilder

Spiegeln Sie die gerichteten Piktogramme: Pfeile, „vorwärts/rückwärts“, Spielkopf, „entfalten/zusammenrollen“.
Spiegeln Sie nicht: Symbole für Text, Grafiken, Uhren (wenn es einen echten Zeitpfeil gibt), Markenlogos.

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

Für SVG: Verwenden Sie' transform-box: view-box; 'damit es nicht „schwebt“.
Vermeiden Sie Text in Bildern → lokalisieren Sie einzelne Ebenen.

6) Formulare und Eingabe

Inhaltliche Ausrichtung: Textfelder nach 'text-align: start;', numerisch/Summen/URL/E-Mail - LTR.

Attribute:
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">

Platzhalter/Label sind lokalisiert, aber das Caret in Zahlen/Codes muss von links nach rechts gehen.
Masken: Caret nicht hart „abfangen“; Unterstützung für Einfügen und Auswählen.
Liste/Radio/Checkbox: Signaturen rechts von den Kontrollen, Klickzonen ≥ 44 × 44 px.
Slider min→max: in RTL mindestens am rechten Rand, maximal - auf der linken Seite (oder zeigen Sie die Skala ohne Inversion und LTR-Zahlen).

7) Zahlen, Daten, Währungen

Arabische Locales verwenden standardmäßig Arabisch-Indocifre (٠١٢٣٤٥٦٧٨٩). Lösung - Geschäftspolitik:
  • In der Finanz-UI werden aus Gründen der Interoperabilität häufiger lateinische Zahlen (0-9) angezeigt, aber das Format (Leerzeichen/Zeichen) ist lokal.
Verwenden Sie' Intl. 'mit der Ziellocale:
js new Intl. NumberFormat('ar', { style:'currency', currency:'AED' }). format(2000);
new Intl. DateTimeFormat('he-IL', { dateStyle:'medium', timeStyle:'short' }). format(new Date());

Relative Zeit ('Intl. RelativeTimeFormat'), Richtungstrennzeichen und lokale Abkürzungen von Tagen/Monaten.

8) Typografie und Lesbarkeit

Schriften mit gutem arabisch/jüdischem Graphem und Ligaturen (Arabic shaping).
Zeilenabstand 1. 4–1. 6; Vermeiden Sie enge Trekking.
Für Arabisch ist kashida (Verlängerung der Striche) zulässig, wenn sie in der Breite ausgerichtet ist - schalten Sie vorsichtig ein ('text-justify: inter-word; '/engine support).
Verbieten Sie die Kursivschrift des lateinischen Alphabets innerhalb der arabischen Zeile (verdirbt den vertikalen Rhythmus).

9) Diagramme, Skalen und Tabellen

Die X-Achsen verlaufen von rechts nach links; Die Legende wird am Inline-Ende ausgerichtet.
Tabellenspalten: „primäre“ Spalte (Name/Spiel) - rechts; Zahlen/Beträge können LTR bleiben und am Inline-Ende ausgerichtet werden.

Zeichen „+/ −“ und Prozentsätze - vor der Zahl, Zahlen LTR-isoliert:
html
<bdi dir="ltr">+12. 5%</bdi>

10) A11y und Screenrider

Stellen Sie sicher, dass' lang = 'ar' '/' lang = 'he' 'angezeigt wird: Die TTS-Engine wählt die richtige Stimme.
Stimmen Sie dynamische Richtungsänderungen sorgfältig ab - schalten Sie' dir 'nicht unnötig auf Fragmente.
Live-Updates ('aria-live = „polite“) - Text ohne Richtungsmischung.
Symbole vermitteln keine Bedeutung ohne Textbeschriftungen; „aria-label“ verwenden.

11) Besonderheiten von iGaming

11. 1 Wettschein (betslip)

Reihenfolge der Felder: Betrag → Verhältnis → mögliche Gewinne; Beschriftungen rechts, LTR Zahlen/Koeffizienten.
Koeffizientenaktualisierungen sanft hervorheben; die Pfeile „oben/unten“ müssen nicht gespiegelt werden (die Bedeutung der Preisrichtung ist universell).

11. 2 Spiele/Märkte

Richten Sie die Liste der Ligen/Veranstaltungen nach Inline-Start aus (bei RTL rechts).
Timer und Zählung sind LTR 'dir =' ltr''mit tabellarischen Ziffern (' font-variant-numeric: tabular-nums;').

11. 3 Zahlungen/CUS

Die Felder IBAN/BIC/Telefon sind immer LTR.
Banknamen/Adresse ist RTL.
Fehler/Validatoren zeigen Marker auf der rechten Seite.

11. 4 Turniere/Leaderboards

Spalten: Position, Spitzname, Brille - Position rechts; Ausrichten der Brille auf Inline-End (LTR-Ziffern).

12) Produktion und Prüfung

Pseudo-RTL in der Jungfrau:
css html. debug-rtl { direction: rtl; }
Auto-Spiegel-Icons bei RTL (nur gerichtet):
css html:dir(rtl). icon-dir { transform: scaleX(-1); }
Autotests (Beispiel für Ideen):
  • Layout-Schnappschüsse bei 'dir = rtl'.
  • Überprüfen Sie, ob „links/rechts“ in CSS (Lint) fehlt.
  • E2E: Tabulatorreihenfolge, Karussellwischen, Schieberegler-Verhalten.
  • Visuelle Tests mit arabischem Text + LTR-Einfügungen (E-Mail, Betrag).

13) Design-System-Token (Beispiel)

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) Snippets

Richtungswechsel in der Anwendung (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]);
}
Harmonisierung der Listen/Bredcrambs:
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; }
Zahlen und Summen als LTR-Fragmente:
html
<span>الربح المحتمل: <bdi dir="ltr">2,000. 00 UAH</bdi></span>
Slider min→max für RTL:
css html:dir(rtl) input[type="range"] { direction: rtl; }

15) Antipatterns

Das harte „Links/Rechts“ in den Stilen bricht RTL →.
Eingabe von Zahlen/IBAN/URL ohne' dir = 'ltr' '→' gebrochen 'Caret und Reihenfolge.
Spiegelung von Logos/Grafiken/Uhren.
Das gleiche Icon-Set wird immer gespiegelt - ohne Ausnahmen in der Bedeutung.
Karussells, Blätter und Paginationen werden nicht umgedreht.
Gemischte Zeichenketten ohne BiDi-Isolation → „tanzende“ Zeichen.

16) Metriken

RTL-Berichterstattung: Anteil der Bildschirme, die die RTL-Revue bestanden haben.
BiDi-Fehler/Freigabe: Anzahl der gemischten Textfehler.
Zeit für Schlüsselaufgaben (LTR vs RTL): darf nicht> 5-10% abweichen.
Eingabefehler in Zahlenformularen: Anteil der Ereignisse mit falschem Caret/Maske.
CLS/perf: keine Layoutsprünge beim 'dir' -umschalten.

17) QS-Checkliste

Richtung und Layout

  • ' 'für RTL-locals;': dir (rtl) '-Stile gelten.
  • Logische Eigenschaften statt „links/rechts“.
  • ist Nawigazija/bredkramby/karusseli/paginazija serkaljatsja korrekt.

Text und BiDi

  • Zahlen/Währungen/URL/E-Mail - „dir =“ ltr „“ oder „“.
  • Keine „umgekehrten“ Zeichen in gemischten Zeilen.
  • Daten/Währungen über 'Intl.' lokalisiert.

Formulare

  • Unterschriften rechts; Klickzone ≥ 44 × 44 px
  • Telefon/IBAN/Betrag - LTR-Caret, korrekte Masken.
  • Slider/Minima/Maxima verhalten sich erwartungsgemäß.

Symbole/Bilder

  • Gespiegelt werden nur gerichtete; Ausnahmen eingehalten werden.
  • Kein Text in Bildern ohne lokale Versionen.

A11u/Performance

  • „lang“ wird ausgestellt; SR liest korrekt.
  • Keine unnötigen Überzeichnungen beim Wechsel von 'dir'.
  • Kontrast/Fokusringe entsprechen AA.

18) Dokumentation im Konstruktionssystem

Direction & BiDi Abschnitt: Spiegelungsrichtlinie, Ausschlussliste für Symbole.
RTL Token Set und Style Linter (Verbot 'links/rechts').
Do/Don't Gallery: Karussells, Bredkrambas, Zahlenformen, Slider, Grafiken.
Pseudo-RTL-Skripte und Revue-Checklisten.

Kurze Zusammenfassung

Die richtige RTL-Unterstützung sind logische CSS-Eigenschaften, bewusste Spiegelung und strenge BiDi-Isolation. Isolieren Sie Zahlen/URLs in LTR, spiegeln Sie Navigation und direktionale Symbole, halten Sie Formulare vorhersehbar und Grafiken lesbar. So wird die Schnittstelle für Arabisch, Hebräisch, Farsi oder Urdu natürlich und schnell sein - von Wettgutscheinen und Zahlungsformularen bis hin zu Turniertabellen und Live-Matches.

Contact

Kontakt aufnehmen

Kontaktieren Sie uns bei Fragen oder Support.Wir helfen Ihnen jederzeit gerne!

Telegram
@Gamble_GC
Integration starten

Email ist erforderlich. Telegram oder WhatsApp – optional.

Ihr Name optional
Email optional
Betreff optional
Nachricht optional
Telegram optional
@
Wenn Sie Telegram angeben – antworten wir zusätzlich dort.
WhatsApp optional
Format: +Ländercode und Nummer (z. B. +49XXXXXXXXX).

Mit dem Klicken des Buttons stimmen Sie der Datenverarbeitung zu.