Languages
Nimaya replies in whatever language a visitor writes in. The widget interface is translated into five locales, and Arabic reverses the whole layout, not just the text.
Supported
| Language | Tag | Direction |
|---|---|---|
| English (UK) | en-GB | Left to right |
| English (US) | en-US | Left to right |
| English (Australia) | en-AU | Left to right |
| German | de | Left to right |
| Arabic | ar | Right to left |
Regional variants fall back sensibly: en-NZ uses Australian English, en-CA uses American, de-AT uses German.
How the language is detected
Nimaya checks, in order:
<html lang="…">— what your page declares.- The URL — a
/de/path prefix, or?lang=de. - The visitor’s own browser preference.
- Your configured default, set under Languages in the dashboard.
A language your page requests but you have not enabled falls back to another region of the same language where possible, then to your default — so an en-US page against a widget offering only UK English still gets English.
When a visitor switches language
If your site reloads on switch, the widget re-reads the new language automatically. If it switches without reloading — most JavaScript frameworks — Nimaya watches <html lang> and updates in place.
Existing messages are left as they were. Re-translating what someone has already read looks broken; new replies use the new language.
If your switcher changes neither the lang attribute nor the URL, tell Nimaya directly:
window.dispatchEvent(
new CustomEvent("nimaya:language", { detail: { language: "de" } })
);
// Or ask Nimaya to re-check the page:
window.dispatchEvent(new CustomEvent("nimaya:language"));With jQuery, $(window).trigger() does not reach native listeners — dispatch the event as above.
What language answers come in
The visitor’s own words win. Someone browsing your English site who asks in Arabic gets an Arabic answer — that is almost always what they want. The page language only decides ambiguous cases: a greeting, a single word, an emoji.
Per-language messages
Under Languages in the dashboard, each enabled language has its own welcome message, fallback message, and handoff confirmation. Leave one blank and that language uses the shared message set under Identity, so enabling a language never forces you to write three new strings.
Right-to-left
Arabic mirrors the whole widget: bubbles swap sides, the header and composer reverse, and the send icon flips. If you have written custom CSS, target .aicb-root[dir="rtl"] to adjust it.