Configure

Localization

33 UI locales, locale strategy, runtime language switching, and content fallback

The widget ships 33 UI locales. Your own content (greetings, prechat labels, messenger title) renders as you wrote it. The widget chrome (buttons, system strings) is translated automatically.

Locale Strategy

localeStrategy decides which language a visitor sees by default:

StrategyBehaviour
AUTO (default)Follow the visitor's navigator.language.
WEBSITEFollow the host page's html lang attribute.
DEFAULTPin every visitor to defaultLocale.

Set it under Languages in the Widget settings, or pass it in the embed config.

Languages Settings

Open Languages in the Content group of the Widget settings.

Languages section with the locale strategy and the list of enabled languages
SettingWhat it does
Supported languagesThe languages the widget speaks. Search and add one at a time. The default language (English for a new widget) is always on and is shown when a visitor's language has no translation.
Default localeThe language the widget starts in and falls back to. You pick it from the supported languages.
Locale strategyAuto follows the visitor's browser. Match the website follows the language of the host page. Default language is always the default language.
Content fallbackShow untranslated articles and news in the default language instead of hiding them. On for a new widget. Interface texts always fall back.

With more than one language, an Editing language menu appears in the toolbar above the preview. Every text field then edits that language, and the preview shows it. In the default language you edit the base text. In another language an empty field shows the default text. See Messenger and Home for the texts you can translate.

Effective Locale Resolution

The widget resolves a visitor's active locale in this priority order:

  1. The visitor's Profile-tab language pick (when the Profile tab is enabled).
  2. A host pin - Web Component only: <wexio-widget locale="...">.
  3. A ?lang= URL parameter on the host page.
  4. The wexio-locale cookie, which holds an earlier ?lang= or Profile-tab pick.
  5. The operator's localeStrategy. WEBSITE reads the host page lang, DEFAULT pins defaultLocale.
  6. The visitor's navigator.language.
  7. en.

The result is normalised against the supported list. A region-tagged code (en-US, pt-BR, zh-TW) matches exactly first. Otherwise it falls back to the base language, and finally to en.

navigator.languageResolves to
en-USen-US (exact)
en-AUen (base)
pt-BRpt-BR (exact)
pt-PTpt (base)
zh-TWzh-TW (exact)
xx-YYen (default)

Pinning a Locale per Embed

EmbedHow
Web Component<wexio-widget public-key="pk_live_..." locale="pt-BR">. Changing the attribute live re-renders without unmounting.
Script loaderNo attribute; inject ?lang=… into the host page URL and the loader forwards it.
ReactNo public prop; uses the operator strategy plus the visitor's Profile-tab override.

Live Language Switching

When a visitor changes their language in the Profile tab, the widget swaps message bundles in place, with no reload and no remount. The choice is written to a cookie. For identified visitors it is also saved to their profile, so it carries across sessions.

Content Fallback

Two settings govern translated content (help articles, news):

SettingEffect
supportedLocalesAn allow-list of content languages. Empty means no filtering.
contentLocaleFallbackWhen true (default), an untranslated item shows the defaultLocale version. When false, it shows a "not translated" empty state.

The 33 Supported Locales

en (default), en-US, en-GB, uk, de, es, es-MX, fr, it, nl, pt, pt-BR, sv, da, no, fi, pl, cs, sk, tr, ro, hu, el, ar, he, hi, th, vi, id, ja, ko, zh, zh-TW.

Was this page helpful?

On this page