Languages and the AI notice
Which language the widget speaks, how to run one agent on a multilingual site, and the one line that can never be removed.
The widget's language
The widget exists in five languages: English, Dutch, French, German and Spanish. That covers its own texts: the AI notice, the input field, the buttons, the error messages.
Which one a visitor gets is decided in this order:
- the
data-localeattribute on the script tag, if there is one - otherwise the language of the visitor's browser, if it is one switched on under Follow the visitor's browser in
- otherwise the agent's Language, under Settings
- otherwise English
The widget does not look at the language of the page it is on. It looks at the visitor's browser only for the languages you switch on, so a Dutch site with none switched on shows everyone the Dutch widget. If your site is in Dutch, set the agent's language to Dutch. If it is in Dutch and French, switch French on as well: a visitor whose browser asks for French gets the widget in French, and the welcome message in French if you wrote one (see below). This works for the button and for the iframe snippet alike.
A site in several languages
One agent can serve all of them. Give each language version of your site its own tag:
<!-- on the Dutch pages -->
<script src="https://YOUR-ADDRESS/w.js" data-agent="YOUR-AGENT-ID" data-locale="nl" async></script>
<!-- on the French pages -->
<script src="https://YOUR-ADDRESS/w.js" data-agent="YOUR-AGENT-ID" data-locale="fr" async></script>
The widget's own texts follow the tag. So can the welcome message, the input placeholder and the launcher label: under Settings, in Content, pick a language under Language of these texts and write them in it. The widget shows that version wherever it speaks the language, whatever brought it there: the page, the visitor's browser or the agent's Language. A language you leave empty shows the texts under Every language. The Preview speaks the language you pick, so it shows what such a page will. A greeting left empty says the first line of the welcome message in the widget's language.
The other texts you wrote yourself (the notice, the text of a greeting or second nudge, the words of the lead form) exist in one version only. If those must differ per language, make an agent per language. That is also the better choice when the content itself differs per country.
The language of the answers
The agent answers in the language the visitor writes in, and switches with them at once, without asking first. Only a message that shows no language, such as an order number or a single word, is answered in the widget's language. The widget's own texts stay in the widget's language. Any language the model knows will do. It is not limited to the five above.
Your sources do not have to be in the visitor's language. The search works on meaning, so a French question finds a Dutch page, and the model answers in French from it. Two things to know: names and terms may come out translated in ways you would not choose, and confidence runs a little lower across languages. For a market that matters, sources in that language are worth it.
The AI notice
At the top of every conversation is a line that says the visitor is talking to an AI:
| Language | Text |
|---|---|
| English | You're chatting with an AI assistant |
| Dutch | Je chat met een AI-assistent |
| French | Vous discutez avec un assistant IA |
| German | Sie chatten mit einem KI-Assistenten |
| Spanish | Estás chateando con un asistente de IA |
It cannot be switched off, on any plan, and the badge removal add-on does not touch it. It sits inside the chat, where the page around it cannot hide or restyle it. On the Deploy page it is listed as AI disclosure: Always shown.
The reason is the EU AI Act. Article 50 requires that people are told when they are dealing with an AI system. We build that in, so that it cannot be forgotten, hidden or got wrong. Answers are also marked as AI-generated in the page's code, for software that looks for that. More in The EU AI Act.