The flow auto-detects the browser language and falls back to English - here's how to force a language instead, and how to set the language of emails separately.

Short answer

The verification UI auto-detects the browser locale and falls back to English. To force a language, pass language when you create the session. Email language is a separate field (contact_details.email_lang) - setting one doesn't set the other.

#Default behaviour

If the person's browser locale is one Didit supports, the verification UI uses it. If not, it falls back to English. You don't have to do anything for that to work.

The Customization page in the Didit console, whose Texts tab overrides wording per language
Language affects both the interface and any wording you override.

#Forcing a language

Auto-detection is wrong often enough to matter - a shared device, a phone bought abroad, a WebView that reports the app's locale rather than the user's, or a browser configured in a language the person doesn't actually read. When you know better than the browser, set it explicitly.

FieldWhereWhat it controls
languageCreate session bodyThe language of the verification UI
contact_details.email_langCreate session bodyThe language of email notifications - invitation, reminders, status updates
email_languageUpdate session statusThe language of a status-change email when you send one

All values are case-sensitive - use the exact codes from the supported languages list. If you don't pass an email language, emails fall back to English regardless of the UI language.

Note

Setting the UI language does not set the email language. A flow can correctly show in Spanish and still send its emails in English if only language was passed. If your users report the flow was fine but the emails weren't, that's the cause.

#WebView and mobile

Inside a WebView, the locale reported to the page is the host app's, not necessarily the user's preference in your product. If your app has its own language setting, pass that as language on session create rather than relying on detection - the app knows and the WebView doesn't.

#Right-to-left languages

Several supported languages are right-to-left, including Arabic. The flow handles the direction; you don't configure it separately. If you've overridden text on the Customization → Texts tab, check those overrides read correctly in an RTL locale as well as an LTR one - a hand-written string is the thing most likely to break there.

#Custom text and languages together

Text overrides on the Customization → Texts tab are written per language: pick the language at the top of the tab, and any field you leave empty keeps the Didit default for that language. So an override written only in English leaves every other language on the default wording, which is easy to miss. Translate to all fills the other languages from the one you wrote; check the result. If you support several languages, prefer keeping the shipped translations and overriding only what you truly must.

#Garbled or nonsense words in the flow

If a user reports scrambled text - words with letters jumbled, or a mix of two languages mid-sentence - the usual cause is not the flow's own translation. It's a browser page-translation feature or extension rewriting the page on top of the flow's rendering.

Ask them to turn translation off for the page. The flow already offers its own languages, so translating it in the browser adds nothing and reliably breaks it.

#OCR languages are a different thing

Didit's OCR reads documents in over 130 languages. That is completely independent of the language the interface is shown in: a person can complete the flow in English while holding a document printed in Greek, and both work. See supported documents and countries.

#Reports are English

The downloadable session PDF renders in English regardless of the flow language. It's an internal compliance artefact rather than something you hand to the end user. See downloading a verification report.

#Language and drop-off

If a market shows unusually high abandonment, language is worth ruling out early - people leave a flow they can't read rather than complaining about it. Check what locale those sessions actually ran in before looking for a subtler cause. See when a session never finishes.

Still stuck? Talk to a human.

Include your organization ID and the session ID you are asking about.

Contact support