i18n & languages
Supported languages and how the widget picks one.
The widget is fully translated into eight languages. Language detection is
automatic — the widget reads the browser's navigator.language and picks
the best match.
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
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.