docs-mintlify/embedding/iframe/localization.mdx
Embedded Cube surfaces — dashboards, Analytics Chat, and the full app in Creator Mode — can render their UI in any of the supported languages. You can set a default language for the whole account, override it per embed with a URL parameter, or switch it at runtime from the host page.
<Note> Available on [Premium and Enterprise plans](https://cube.dev/pricing). </Note>| Language | Locale code |
|---|---|
| English (US) | en-US |
| Deutsch (Deutschland) | de-DE |
| Español (España) | es-ES |
| Español (Latinoamérica) | es-MX |
| Français (France) | fr-FR |
| Italiano (Italia) | it-IT |
| 日本語 (日本) | ja-JP |
| Norsk bokmål (Norge) | nb-NO |
| Português (Brasil) | pt-BR |
| Português (Portugal) | pt-PT |
| Svenska (Sverige) | sv-SE |
| Tiếng Việt (Việt Nam) | vi-VN |
English (en-US) is the default and the fallback when no language is configured.
A locale value can be a full code (es-ES), a short language code (es), or a regional
variant that isn't shipped (es-AR). Short codes and unsupported regional variants
resolve to the first supported locale for that language — for example, both es and
es-AR resolve to es-ES. A value that doesn't match any supported language is ignored.
The language of an embedded surface is resolved from the following sources, highest priority first:
cube:action:set-locale
message sent from the host page (see At runtime).?locale= query parameter on the embed URL (see
Per embed via URL).en-US.Set a default language for all embedded surfaces from the Cube Cloud console:
The selected language applies to every embedded surface across the account, unless a
specific embed overrides it with a ?locale= URL parameter or a runtime
cube:action:set-locale message.
Clearing the setting removes the stored default, and embeds fall back to en-US (or to
whatever a per-embed override specifies).
Override the account default for an individual embed by adding the ?locale= query
parameter to the embed URL:
https://your-tenant.cubecloud.dev/embed/dashboard/YOUR_DASHBOARD_PUBLIC_ID?session=YOUR_SESSION_ID&locale=es-MX
The parameter is read once when the embed loads and pinned for the session, so in-app navigation won't drop it.
Switch the language after the embed has loaded by sending a
cube:action:set-locale message from
the host page. This takes precedence over both the URL parameter and the account default:
sendAction("cube:action:set-locale", { locale: "es" });
See Events and actions for the full host ↔ embed messaging contract.