Translating strings is the smallest part of shipping an Arabic product. The work that decides whether the product feels native happens in layout architecture, typography, bidirectional text, and every flow a user touches. These are the areas we engineer:
Direction and layout architecture
RTL is a layout mode, not a CSS patch. We build with logical properties (start/end, margin-inline, padding-inline) and direction-aware components so the same codebase renders correctly in both directions without per-page overrides.
Arabic typography
Arabic script needs proper font selection, line-height, letter connection, and diacritic handling. Latin-optimized type scales usually break Arabic readability, so weights and sizes have to be re-tuned.
Mixed Arabic and English content
Real products mix Arabic text with English product names, codes, and emails. Bidirectional text needs explicit isolation (dir attributes, bdi, unicode-bidi) or numbers and brackets render in the wrong order.
Navigation mirroring
Menus, breadcrumbs, back buttons, carousels, steppers, and directional icons (arrows, chevrons) must mirror. Some icons mirror and some must not — a rule set, not a global flip.
Forms and validation
Field alignment, label position, placeholder direction, error message placement, and input types (phone numbers stay LTR inside an RTL form) all need deliberate handling.
Tables and dashboards
Column order, sort indicators, sticky columns, pagination controls, and cell alignment flip in RTL. Numeric columns often stay LTR-aligned for scanability.
Charts and data visualization
Axis direction, legend placement, tooltip alignment, and time-series orientation need review per chart library — most charting defaults assume LTR.
Dates, numbers, currency, and addresses
Hijri vs Gregorian expectations, Arabic-Indic vs Latin digits, currency symbol placement (IQD, SAR, AED, QAR, KWD), and address formats differ by market and must be consistent across UI, exports, and messages.
Checkout and payment flows
Cart, address, payment, and confirmation steps are where broken RTL costs revenue. Card fields, OTP inputs, and gateway-hosted pages need mixed-direction handling and market-appropriate payment options.
Mobile responsiveness
RTL bugs multiply on small screens: swipe direction, drawer position, truncation, and keyboard behavior for Arabic input all need device-level QA.
Email, invoice, and notification templates
Transactional emails, PDFs, invoices, and push notifications are rendered outside your app shell and are commonly forgotten — they need their own RTL templates.
Accessibility
Screen-reader language tagging, focus order in mirrored layouts, and readable contrast with Arabic type sizes keep the product usable for everyone.
SEO metadata and localized URLs
hreflang, canonicals, localized titles and descriptions, structured data in the right language, and a URL strategy that will not fragment your search equity.