Contents

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:

  1. the data-locale attribute on the script tag, if there is one
  2. otherwise the language of the visitor's browser, if it is one switched on under Follow the visitor's browser in
  3. otherwise the agent's Language, under Settings
  4. 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:

LanguageText
EnglishYou're chatting with an AI assistant
DutchJe chat met een AI-assistent
FrenchVous discutez avec un assistant IA
GermanSie chatten mit einem KI-Assistenten
SpanishEstá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.