The translation trap
Almost every Western clinic management system markets itself as "bilingual" because it has Arabic strings. But a translated UI on a left-to-right layout, with English-style date formats, English error messages from the backend, and English-formatted phone numbers, is not bilingual. It's an English product with subtitles.
Patients catch this within seconds. The button labels are Arabic but the layout flows the wrong way. A date shows "29 Apr 2026" instead of "29 أبريل 2026". An error toast appears in English when the backend trips. A phone number field expects "+20 1XX-XXX-XXXX" rendered LTR. The cumulative impression: this product wasn't built for me.
What Arabic-first actually requires
Building genuinely bilingual software means committing to RTL as a first-class layout direction, not a CSS afterthought. Concretely:
- Logical CSS properties only:
margin-inline-startinstead ofmargin-left,padding-inline-endinstead ofpadding-right. The same component renders correctly in both directions without per-language overrides. - Native Arabic font chosen for body and display, not a generic system fallback. We use Tajawal — designed for Arabic, with proper character spacing and line height.
- Bidi-aware text fields. Phone numbers, ID numbers, dates — these have their own directional rules even inside Arabic prose. A phone "01XXXXXXXXX" inside an Arabic sentence still reads LTR; the framework has to handle that automatically.
- Localized number formats using Intl. "1,200 EGP" in English becomes "١٬٢٠٠ ج.م" in Arabic when the patient prefers Arabic numerals — and the choice is per-patient, not global.
- Bilingual at the data layer. Field names, dropdown values, validation messages — all sourced from a localization map keyed by the patient's preferred language, not the staff's. Staff can run the admin in English while every patient communication goes out in their language.
Per-patient language preference
The single most underestimated feature in clinic software is "preferred_language" on the patient record. In any clinic with mixed clientele — and that's most clinics in Cairo or Alexandria — some patients want Arabic and some want English. Forcing one or the other is a daily friction.
With per-patient preferences, every email, every WhatsApp message, every receipt, every care plan goes out in that patient's language automatically. Staff never have to think about it. It's stored once at intake and respected everywhere downstream.
Trust signals matter more than feature parity
Patients judge digital trust by small details. An Arabic-first portal with a tiny English error string at the bottom signals "this isn't really for me." A portal that breaks Arabic line-wrapping on long words signals "they didn't test this." A portal that puts the close button on the wrong side of a modal signals "they ported a Western product."
Conversely, a portal that gets every detail right — proper Arabic month names, Arabic-numeric phone formatting in form fields, RTL-flipped icons where appropriate, native Arabic typography — communicates "this clinic chose a system that takes my language seriously." That trust signal lifts adoption rates more than any feature.
How Carehub handles it
Carehub was built bilingual from day one, not retrofitted. Every component uses logical CSS. Every patient has a preferred_language field. Every outbound message respects it. Staff can flip the entire admin to Arabic too — but the staff and patient languages are independent.
The portal supports both EN and AR with a single toggle in the topbar. The staff sidebar and patient view have full feature parity in both directions. Right-to-left isn't a mode; it's a layout the same way left-to-right is.
Book a demo if you want to see what genuine Arabic-first clinic software looks like compared to translated alternatives — the difference becomes obvious within 60 seconds.