Widget Languages

Your chat widget speaks 38 languages. Visitors pick their own with the globe button, Yaplet's own wording follows that pick automatically, and you write your own texts in your own language — with the other 37 behind a globe and a Languages tab that shows where you stand.

Overview

The chat widget's interface is available in 38 languages:

EnglishDeutsch (German)Français (French)
Español (Spanish)中文 (Chinese, Simplified)Português (Portuguese)
Italiano (Italian)Nederlands (Dutch)日本語 (Japanese)
हिन्दी (Hindi)Svenska (Swedish)Dansk (Danish)
Magyar (Hungarian)Polski (Polish)Čeština (Czech)
Suomi (Finnish)Русский (Russian)Türkçe (Turkish)
Bahasa Indonesia (Indonesian)Norsk (Norwegian, Bokmål)Slovenčina (Slovak)
Hrvatski (Croatian)Български (Bulgarian)한국어 (Korean)
ไทย (Thai)Tiếng Việt (Vietnamese)Română (Romanian)
Ελληνικά (Greek)Українська (Ukrainian)Bahasa Melayu (Malay)
FilipinoEesti (Estonian)Gaeilge (Irish)
Latviešu (Latvian)Lietuvių (Lithuanian)Malti (Maltese)
Slovenščina (Slovenian)Srpski (Serbian, Latin script)

A visitor can switch between them at any time, and the widget remembers what they chose.

The one thing to understand before anything else. Two different kinds of text live in your widget, and they behave differently. Yaplet's own wording — the tab names, buttons, system lines, the AI's own sentences — follows the visitor's language on its own, with nothing for you to do. Text you typed — your greeting, your welcome line, your card copy, your quick-reply buttons — stays in the language you wrote it in until you add the other languages yourself, behind the globe next to each field. The rest of this article is really just that sentence, explained.

The language button visitors see

On the widget's home screen, next to the close button, sits a globe. Clicking it opens the list of all 38 languages, each written in its own language — English, Deutsch, Français, 日本語 and so on — with the current one ticked. Picking one changes the whole widget immediately: no reload, no lost conversation.

The choice sticks. It is written into that visitor's browser and onto the visitor's own record on our side, so it survives a reload and every later visit from the same browser. The one thing it does not survive is the browser being wiped: a returning visitor is recognized by what their browser kept, so cleared site data means a brand-new visitor who has never picked anything.

A visitor's own pick beats your brand's language, their browser's language and any Yaplet.setLanguage() call your site makes — for as long as the widget can still read the pick out of that browser. In the rarer case where the browser's copy is gone but the visitor is still recognized, a setLanguage() call from your page wins and is written onto their record in place of the old pick. So call setLanguage() when your site genuinely knows better than the visitor does, not on every page load out of habit.

Which language a visitor starts in

For a visitor who has never picked one, the widget works down this list and uses the first answer it gets:

Their own earlier choice

If they have used the globe before, that is the language, and the rest of this list is skipped.

What your website asked for

If your site calls Yaplet.setLanguage("de"), the widget opens in that language. Useful when your own site already knows which language the visitor is reading.

Their browser's language

Only if you switch this on — see the toggles below. Yaplet reads the visitor's browser language list in order and takes the first one the widget can speak.

Your brand's language

The fallback, and what most visitors get. It is set at Brand → (your brand) → Brand settings → General → Language.

The two settings you control

Both live on the Languages tab, at Brand → (your brand) → Chat widget.

Follow the visitor's browser language
boolean
Off by default. When on, a visitor whose browser is set to German gets a German widget without touching anything. When off, everyone starts in your brand's language until they pick otherwise.
Language selector
boolean
Visible by default. Turn it off to hide the globe entirely — the widget then stays in whatever language it resolved to, and visitors cannot change it.
Turning Follow the visitor's browser language on is the single highest-value change here if you have visitors abroad. They never see a language switcher they have to notice, hunt for and understand — the widget is simply already in their language.

Your own text: written in your language, translated behind the globe

Everything you typed into the widget — the greeting, the welcome line, home-card titles and descriptions, quick-reply button labels and the messages they send — is stored per language.

The rule the whole screen follows, in one sentence: your language on the page; the other languages behind the globe.

So each of those fields is an ordinary box you type into, holding your own wording, and beside it sits a globe. Your text saves with the page's Save Changes, like every other setting. The globe opens the other languages, with your text shown read-only at the top — that is what the translations have to say, so it is the reference rather than another row to fill in. Those rows are saved by the window's own Save button, separately from the page's Save Changes.

Change a text and click the globe, and the page saves itself first — the button shows a spinner for a moment, then the languages open. Translating from a sentence that is not stored yet would translate the OLD wording, and you would end up with the other languages quietly disagreeing with the box above them, so the save has to happen either way; the globe just does it for you instead of sending you back to Save Changes. It is the page's ordinary save, so anything else you have changed on the screen is saved at the same time, and you get the usual confirmation. If something on the page does not pass validation, the page says so and the languages do not open — fix it and click the globe again.

An empty box is a decision, not a gap

Leave a field empty and every visitor reads Yaplet's own wording for it, in their own language — already translated, nothing to do. That text is what the box shows you as its placeholder, so you can always see what you are choosing between. Typing your own text is what makes it your job; clearing the field again hands it back to us.

What a visitor actually reads

For each piece of text, in this order:

  1. Their own language, if you wrote it.
  2. Otherwise your text — your own wording, exactly as you typed it.
  3. Otherwise Yaplet's built-in wording, in their language (which only applies while you have written nothing of your own for that field).

That is the whole rule. A German visitor to a shop that writes in Hungarian reads the Hungarian greeting until somebody writes the German one — never some third language that happened to be filled in first.

Translating costs AI usage

Every Translate button on this screen runs a real AI call, and it is billed like any other AI generation — from your credit balance, or against your subscription.

This changed. Widget text translation used to run free for everyone, paid and unpaid alike. It is now billed like the rest of your AI usage, so an organisation with no subscription and no credits is refused with "AI generation needs credits. Top up your balance in Billing to keep generating." rather than translating.

Nothing else about the screen changes: your own wording is always free to write and save, and a visitor always gets Yaplet's own wording in their language for any field you leave empty — see an empty box is a decision, not a gap. Only the act of translating your text into other languages draws on AI usage.

Translate all languages is one call per text across every language, so it is the cheapest way to do a full pass — much cheaper than opening each language and translating it on its own.

The Languages tab: where you stand, at a glance

The widget editor's last tab is Languages, and it answers the question the fields cannot: which languages are done, and what is left?

  • A line at the top says which language your texts are written in and how many there are — Your texts are written in English (14 texts).
  • Translate all languages fills in every missing translation and redoes the outdated ones the AI wrote, in every language, in one click.
  • Then one row per language: 12 of 14 · 3 by AI · 2 may be outdated, with Translate (the same, for this language only) and Review (open it and read it through).

The same numbers appear as a single muted line above the first field on the Home tab — Your texts are in English · 7 other languages complete · 1 language missing texts — because that is where you are standing when you write a text, and it links straight to the tab.

Review: one language, every text

Review opens one language full-screen, with every text you have written and your own wording above each box. It is how you check a language over before you trust it — a card title translated on its own can read perfectly and still not match the card's description underneath it.

At the bottom, Save keeps what you edited by hand, and Translate the empty ones and Re-translate the outdated ones appear whenever there is something for them to do. Re-translate redoes every outdated translation in that language, including ones a person wrote, and an Undo appears right after either button.

The live preview beside the settings has the widget's own globe (while Language selector is on). Pick a language there to see your widget as a visitor reading that language will, unsaved changes included.

"May be outdated"

When you change a text, the translations made from the OLD version are marked may be outdated — in the table, and on the text itself in Review. Nothing is thrown away and nothing is rewritten behind your back: it is a note that those languages are now saying something you have since changed your mind about. Re-translate the outdated ones brings them back in line.

A conversation starter has one timestamp for its label and its prompt together, so editing either one marks both as possibly outdated. That is why the badge says may be. Only an edit counts: pausing, resuming or reordering a starter marks nothing.
A translation a person wrote is never overwritten from the Languages tab. Besides filling in missing translations, Translate and Translate all languages redo only the outdated ones the AI wrote. One you or a teammate typed stays exactly as written and keeps its may be outdated note, so you can update it yourself in Review. That is why a language with nothing missing whose only outdated translations are hand-written shows no Translate button, while its row still says 2 may be outdated. These two buttons save straight away and have no Undo. Re-translate the outdated ones in Review does redo hand-written ones too, because there you can undo it.

Translate the empty ones

Both the globe and the Languages tab can write the missing languages for you, using what you already wrote as the source and what your brand does as context. In the globe's window and in Review the results land straight in the boxes — no preview to approve — and an Undo appears immediately if you don't like them. The Languages tab's Translate buttons save straight away, with no Undo.

Quick buttons written by Redesign with AI or by AI setup are translated into every other language for you as soon as they are saved. If that fails, they stay in your language until you translate them on the Languages tab.

Auto-translation is free and does not use your AI credits. It is rate-limited to a generous ceiling per organization, which normal editing never reaches.
Read what it wrote before you save, particularly for short marketing lines and puns. It is a good translator, not a copywriter who knows your brand.

Conversation starters

A starter's own wording is its label and prompt on the starters page (Brand → (your brand) → Vex → Starters) — you edit it there. The globe on its row opens the other languages, with those two columns as the read-only reference. Edit a starter's label or prompt and its translations are flagged as possibly outdated, the same as any other text.

If your brand's language is not one of the 38

If your brand works in, say, Catalan, you write your texts in Catalan in the ordinary fields, and that is what the globe shows as the reference — there is no extra row for it, because it is not a translation of anything. Every visitor with no translation of their own reads it. Your brand keeps working in its own language for knowledge search and for what the AI writes; it is only the widget's interface (buttons, tab names, system lines) that falls back to English.

If you change your brand's language

Your texts stay filed under the language they were written in. Change your brand's language later and the Home tab's fields show what is stored for the new language — the translations you already had, or empty boxes. Visitors reading the old language still see your old texts; everyone else follows the usual order — their own language, then your texts in the new language, then Yaplet's built-in wording. While none of your Home texts are in the new language yet, the Languages tab warns you: Your brand language is Hungarian, but 14 texts are written in English. The line under it says what to do: Write your texts in Hungarian on the Home tab and they will be translated from there. To keep writing in English instead, change the brand language back in Brand settings. Once your texts exist in the new language, they are the source for every other language and translating works as usual. There is no button that moves the old texts across. Until then the Home screen has nothing in the new language to translate from: without active conversation starters the tab shows no Translate buttons and Review cannot be opened. If your AI agent has active starters, the warning still appears, under the line that counts your texts, but that count, the Translate buttons and Review cover only the starters until your Home texts exist in the new language.

Texts Yaplet writes for you

Reply time
select
The "we usually reply in…" promise is a choice from eleven options, from a few minutes up to a few days. Each visitor reads it in their own language. Set it at Chat widget → Messages.
Handoff line
text
The line a visitor sees just before being connected to a person is one of Yaplet's own texts, said in the visitor's language — there is no field for it. A workflow's Request agent step can send a message of its own, and that one is shown instead.

The widget's five tab names and the rating question work the same way: Yaplet's wording, translated for each visitor, with nothing to type.

What stays in one language on purpose

Not everything follows the reader, and that is deliberate:

  • Messages already sent. A chat bubble your AI or your team wrote is stored as written. Switching language mid-conversation does not rewrite history — it would be rewriting what somebody actually said.
  • What language the AI answers in. That is decided by the language the visitor writes, message by message — not by the globe. Someone who set the widget to Hungarian and then types in German gets German back. The globe only breaks ties: when the visitor's own words say nothing about language — a conversation starter or a Home quick button they tapped rather than typed (Yaplet's built-in buttons and the ones you wrote alike), or a message too short to identify like "ok" or "?" — the AI is told which language they are reading the widget in and answers in that.
  • Your knowledge base and documentation articles. Each source carries its own language, and the AI answers from whichever ones match. See Knowledge.
  • Your team's replies. A human agent writes what they write.
  • Forms your website opens through the SDK. They are shown in your brand's language, not in the language the visitor picked in the widget.

The status lines in a conversation — "Agent requested", "Rating submitted" — are the exception: they are Yaplet's words, so the visitor reads them in the widget's language. Your team reads the same lines in the dashboard's language (English or Hungarian); the mobile app shows them in English.

Automate with AI

You can set the brand's language, the reply-time promise and your own texts — the greeting, the welcome line, cards and quick buttons, in your brand's language — through Copilot or any MCP client — see Widget Tools. The other languages are not writable that way: they live behind the globe and on the Languages tab, and Copilot tells you when a text it wrote exists only in your language.