Languages and right-to-left
The eight languages the Medos widgets support, how each widget picks one, which widgets let the patient switch, and right-to-left layout.
The widgets are translated into eight languages. Language detection is
automatic — a widget reads the browser's navigator.language and picks the
best match.
| Widget | Translated | Patient can switch |
|---|---|---|
| Booking | Yes | Yes, from the header on the first step |
| Patient portal | Yes | Yes, on the sign-in screen and the dashboard |
| Enquiry form | Yes | No — it uses the detected language |
| Package purchase | No — English only | — |
Supported languages
| Locale | Language |
|---|---|
en-US | English (United States) |
en-GB | English (United Kingdom) |
en-IN | English (India) |
hi | Hindi |
te | Telugu |
ur | Urdu (right-to-left) |
ar | Arabic (right-to-left) |
fr | French |
Detection
The widget resolves the language in this order:
localStorage— a previously detected/selected language is reused (the widget caches its choice there).- Browser language —
navigator.language/navigator.languages. - Fallback to
en-USif nothing matches a supported language.
The resolved language is cached back to localStorage, so a returning
visitor keeps the same language across sessions.
RTL support
ar and ur are right-to-left. The widget automatically flips its layout
direction — no configuration required.
The patient can switch language
In the booking widget, a language picker sits in the header above the calendar, so a patient can change
language themselves. Their choice is cached to localStorage and reused next
time.
It only appears on that first step — the later booking steps deliberately hide it, so the language is chosen before the patient starts entering details.
`calendarOnly` removes the picker
calendarOnly strips the header the picker
lives in, which leaves the patient on whatever language was auto-detected. If
you're building a kiosk in a specific language, that's usually what you want —
just be aware there's no way for them to change it.
Overriding the language from config
There's no option to force a language through init(). If you need that for
kiosk or embedded use, contact the platform team — it's tracked as a future
config option.
Patient verification
How Medos widgets verify a patient with a one-time code by phone or email, which widgets verify, and how otpChannels narrows the choice.
Multiple widgets on one page
Each Medos widget global is a single instance. Mix different widgets on a page freely, and use iframes for two of the same widget.