Texts and languages
Which language the widget speaks, how it picks the language and how you replace any of its roughly 200 texts – in your account or in code.
The widget speaks German, English and Polish. Each of its roughly 200 texts can be replaced: in your account for all pages, or in code for individual pages.
How the widget picks the language
The widget sits inside your page. What the visitor is reading right now therefore counts for more than their browser setting. The order:
- A language your page has chosen for this visitor via
ReactiveChat('setLocale', …)(see below). - A fixed language on the snippet (
data-rc-locale) or in the configuration. - Otherwise the language of your page from
<html lang="…">. - Otherwise the default language from your account.
- Otherwise the browser's language, and finally English.
Regional codes are shortened: de-AT becomes de. A language the widget does not know becomes English.
So the most important thing is a correct <html lang> on your pages. Then the widget follows every language version of your website by itself.
The default language in your account
Under /app/projects/{id} in the Installation tab, section Basics, you choose the Default language: de, en or pl. It has two jobs:
- It applies to visitors on pages without
<html lang>if the snippet does not set a language. - It is the language you write your own wording, the home screen and the promo card in (see below).
Setting the language in code
Fixed for one page, on the snippet:
<script src="https://cdn.reactive.chat/loader.js"
data-rc-site-key="SITE_KEY"
data-rc-locale="pl"
async></script>
At runtime, for example from your own language switcher:
ReactiveChat('setLocale', 'en');
setLocale relabels the widget immediately. The widget remembers the choice for a year in the visitor's browser, and it then takes precedence over data-rc-locale on other pages too. There is no language picker in the widget itself. If your visitors should choose, call setLocale from your switcher.
Own wording in your account
In the Texts & forms tab, section Own wording, every text of the widget is listed with its key, grouped by area and collapsed. Our text is shown in grey in the field. Whatever you enter replaces it. The heading shows how many texts of your own you already have.
- 400 characters at most per text.
- Leaving it empty means: our text.
- A text that is exactly the same as ours is not saved.
- The widget fills in placeholders in curly brackets such as
{n},{name}or{time}. Keep them in your text if you want the value to be shown.
Important about the language: you type the texts in the project's default language, and that is where they take effect. Visitors whose widget runs in a different language still see our supplied texts there. For texts of your own in further languages, use code (below), ideally on the pages of the respective language version.
Changes reach your visitors within a minute.
The most important keys
An excerpt, by area:
launcher.text,launcher.subtext– label and second line of the launcher. Empty out of the box; an entry takes precedence over the fields under Appearance → Brand.launcher.label– the launcher's label read out by screen readers (“Open chat”).header.title,header.subtitle_online,header.subtitle_bot,header.response_time– title and second lines in the header.home.greeting,home.sub,home.start,home.start_sub– greeting and entry point on the home screen (the greeting is easier to set under Home screen).tabs.home,tabs.messages,tabs.help– the tabs.input.placeholderand otherinput.*– the input field.offline.*– the “Leave a message” form.prechat.*– the pre-chat form.bh.*– notes about business hours.ds.*anddaten.*– consent and the “Your data” data card.msg.ki_notice– the note before the AI assistant's first answer.csat.*– the rating after the conversation.transcript.*,upload.*,handoff.*,queue.*,teaser.*,err.*– transcript by email, attachments, handover to the team, queue, tooltip bubble and error messages.
You can see the complete list in your account.
The note “Powered by reactive.chat” (see Chat window) and the texts of product tours (see Product tours) cannot be changed via texts.
Replacing texts in code
On the snippet with data-rc-strings as JSON, keys in dot notation:
<script src="https://cdn.reactive.chat/loader.js"
data-rc-site-key="SITE_KEY"
data-rc-locale="en"
data-rc-strings='{"input.placeholder":"Your question about your order …","header.title":"Customer service"}'
async></script>
Or in the configuration:
ReactiveChat('boot', {
strings: { 'input.placeholder': 'Your question about your order …' }
});
A second boot call on the same page loads new strings. That way you can change texts after sign-in, for example.
Texts set in code apply the same in every language. So set them on pages whose language is fixed, and set the language there as well.
Order of precedence, from strongest to weakest:
- Texts in code (
strings) – they only apply to the page they are on. - Own wording from your account, in the default language.
- Our supplied texts in the visitor's language.
- English.
Code wins on purpose: if you want to label a single page differently, you do it there, without changing the setting for all other pages.
Other texts elsewhere
Some texts have a field of their own, often per language:
- Greeting, tiles and home screen: The chat's home screen
- Sentence above the pre-chat form (per language): Availability, forms and service
- Consent sentence and link to the privacy policy (per language): Privacy and consent
- Texts of tooltips and proactive messages: Proactive messages
- Name and tone of the AI assistant: AI assistant
- Promo card, also per language in code: The promo card in the chat
शेवटचे अद्यतन: