Widgets

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.

WidgetTranslatedPatient can switch
BookingYesYes, from the header on the first step
Patient portalYesYes, on the sign-in screen and the dashboard
Enquiry formYesNo — it uses the detected language
Package purchaseNo — English only—

Supported languages

LocaleLanguage
en-USEnglish (United States)
en-GBEnglish (United Kingdom)
en-INEnglish (India)
hiHindi
teTelugu
urUrdu (right-to-left)
arArabic (right-to-left)
frFrench

Detection

The widget resolves the language in this order:

  1. localStorage — a previously detected/selected language is reused (the widget caches its choice there).
  2. Browser language — navigator.language / navigator.languages.
  3. Fallback to en-US if 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.

On this page