Configure Translations
The Translations tab lets you localize every piece of text in the assistant's interface — button labels, the placeholder, the welcome message, error states, form strings — so visitors see the assistant in their own language.
Built-in Languages
The assistant ships with English (EN), Spanish (ES), and Catalan (CA) built in. It detects the visitor's browser language (from navigator.language) and picks the closest match automatically. If no match is found, English is used.
Adding a New Language
- Open the assistant's Settings and the Translations tab.
- Choose Add language and enter the language code (e.g.
FRfor French,DEfor German,PTfor Portuguese). - Fill in the interface strings — each key (like
ask,welcome,placeholder) has a field for your translation. - Save.
Your translations override the built-in ones, so you can also customize the English text — for example, change the send button from "Ask" to "Send" or the placeholder from "Ask a question" to something specific to your brand.
Translation Keys
Every piece of interface text is referenced by a key. Here is the full list of built-in keys, their English default, and where they appear in the assistant:
Core interaction:
| Key | Default (EN) | Where it appears |
|---|---|---|
placeholder | "Ask a question" | The grey hint inside the message input. |
ask | "Ask" | The send button label. |
search | "Search" | The search action label (overlay mode). |
searching | "Searching..." | Shown while the assistant is generating an answer. |
noResults | "Sorry, I couldn't find what you're looking for." | Shown when the assistant finds no matching content. |
sorry | "Sorry, we are unable to answer at this moment." | Shown on an unexpected error. |
Welcome and identity:
| Key | Default (EN) | Where it appears |
|---|---|---|
welcome | (empty — uses the welcome message from General settings) | The greeting shown when the chat opens. |
description | (empty — uses the description from General settings) | The subtitle below the assistant title. |
References and reactions:
| Key | Default (EN) | Where it appears |
|---|---|---|
references | "Sources" | The heading above reference cards in an answer. |
copy | "Copy" | Tooltip on the copy-to-clipboard button. |
copied | "Copied to clipboard" | Confirmation after copying. |
like | "Like" | Tooltip on the thumbs-up reaction button. |
dislike | "Dislike" | Tooltip on the thumbs-down reaction button. |
Window controls:
| Key | Default (EN) | Where it appears |
|---|---|---|
close | "Close" | Tooltip on the close button. |
expand | "Expand" | Tooltip on the expand button. |
collapse | "Collapse" | Tooltip on the collapse button. |
clear | "Clear conversation" | Tooltip on the clear-history button. |
Forms:
| Key | Default (EN) | Where it appears |
|---|---|---|
showForm | "Open form" | The button that opens a lead-capture form. |
submitForm | "Submit" | The form submit button. |
formSubmitted | "Your form has been submitted." | Confirmation after a form is submitted. |
Attachments:
| Key | Default (EN) | Where it appears |
|---|---|---|
attachFile | "Attach file" | Tooltip on the file attachment button. |
attachedFile | "Attached file:" | Label shown next to an attached file. |
removeAttachment | "Remove attachment" | Button to remove a queued attachment. |
processingAttachment | "Processing attachment..." | Shown while a file is being processed. |
Footer:
| Key | Default (EN) | Where it appears |
|---|---|---|
poweredBy | "Powered by" | The attribution text in the footer. |
contactUs | "Contact us" | The contact action in the footer. |
How Translations Work in Templates
Inside the assistant's Liquid templates, every translatable string is referenced with the t filter:
{{ 'key' | t: 'Fallback text' }}
The filter looks up the key in the visitor's language. If the key has a translation, it's used; if not, the fallback text (the second parameter) is shown instead.
For example, in the search bar template:
<textarea placeholder="{{ 'placeholder' | t: 'Ask a question' }}"></textarea>
<button>{{ 'ask' | t: 'Ask' }}</button>
And in the response template, the sources heading and reaction buttons:
<span>{{ 'references' | t: 'Sources' }}</span>
<button title="{{ 'like' | t: 'Like' }}">...</button>
<button title="{{ 'dislike' | t: 'Dislike' }}">...</button>
Custom Translation Keys
You can add your own keys beyond the built-in list. If you add a key called customGreeting in the Translations tab, you can reference it in a template override:
{{ 'customGreeting' | t: 'Hello!' }}
This is useful for Enterprise users who override templates and need translatable strings in their custom markup.
Tips
- Start with the strings visitors see most:
placeholder,ask,noResults, andreferences. - Test each language by changing your browser's language setting and reloading the page.
- You don't need to translate every key — untranslated keys fall back to the built-in default for that language, or to English.
- Translations cover the interface (buttons, labels, placeholders), not the answers — the assistant's reply language is controlled by the behaviour instructions.
Troubleshooting
- If a label stays in the default language, its translation key is probably empty — open the Translations tab and fill it in.
- Avoid adding the same language code twice — duplicates can cause unpredictable behavior.
- The language is detected from the visitor's browser, not from their location. To force a language, set it in the embed via a template override.