Skip to main content

Strings & Localisation

Every user-facing string is overridable via strings in your config. Any key you omit falls back to the built-in default. This is also how you localise the widget into another language.

You can use {{botName}} in emptyBody and {{count}} in newMessages for interpolation. Unknown keys are ignored with a console warning that lists the known ones, so a typo or an old key name shows up in the console.

Example​

setConfig({
apiUrl,
accountNumber,
userHandle,
strings: {
botName: 'Support',
emptyTitle: 'Start a conversation',
emptyBody: 'Send a message below and {{botName}} will get back to you.',
inputPlaceholder: 'Type your message…',
loadingMessages: 'Loading messages…',
conversationEndedNotice: 'Chat ended',
startNewConversation: 'Start a new conversation',
ariaLabels: {
triggerButton: 'Open chat',
closeButton: 'Close',
closeConversationDialogDismiss: 'Keep chatting',
},
emojiPickerList: [
['😀', 'Grinning face'],
['👍', 'Thumbs up'],
// …
],
},
});

Default values (strings)​

KeyDefaultDescription
botNameSupport AssistantDisplay name shown in the panel header (its first letter is the avatar) and interpolated into emptyBody via {{botName}}. This is the single name used for the support side — the widget does not distinguish between an AI bot and a human agent (all inbound messages share the same bubble style).
emptyTitleStart a conversationEmpty-state title, shown (in bold, under the chat icon) before any messages exist.
emptyBodySend a message below and {{botName}} will get back to you.Empty-state text under the title. Supports {{botName}}.
inputPlaceholderType your message...Placeholder inside the message text field.
loadingMessagesLoading messages...Not shown as text. It's the hover tooltip and screen-reader label of the small spinner in the top-right corner of the message area, which appears while a conversation's messages load for the first time or after Try again.
loadMessagesErrorCouldn't load messages.Shown when loading messages fails (network/API error), above the loadMessagesRetry button.
loadMessagesRetryTry againRetry button under loadMessagesError.
sendMessageErrorMessage couldn't be sent. Try again.Alert shown when sending a message fails. Stays until the user edits the message or sends again.
newMessage1 new messageFloating "jump to latest" CTA shown when there is exactly 1 unread message and the user has scrolled up.
newMessages{{count}} new messagesSame floating CTA when there are multiple unread messages. Use {{count}} for the number.
closeConversationDialogTitleEnd this chat?Title of the confirmation shown when the user ends an active conversation with the header X. Also its accessible name.
closeConversationDialogBodyYou can start a new conversation later.Text under the confirmation title.
closeConversationDialogCancelKeep chattingSecondary button. Dismisses the confirmation without ending the chat.
closeConversationDialogConfirmEnd chatPrimary button. Ends the chat on the server.
closeConversationDialogConfirmBusyEnding chat…Label of the primary button while the end-chat request is in flight.
closeConversationDialogErrorCouldn't end the chat. Try again.Shown in the confirmation when ending the chat fails. The primary button stays available to try again.
conversationEndedNoticeChat endedDivider below the dimmed, read-only history when the chat was ended in another tab, on another device, or by support (in place of the empty state when the chat has no messages). Stays until the user presses the header X or startNewConversation.
startNewConversationStart a new conversationFull-width button that replaces the composer when the chat has ended. Clears the ended chat and joins the account's open chat, if there is one.

Default values (strings.ariaLabels)​

These are screen-reader-only labels — they are not rendered visually, but they describe interactive controls for assistive technology. Keep them meaningful when localising. Each key is named after the element it labels.

KeyDefaultDescription
triggerButtonOpen Live ChatFloating launcher button that opens the panel.
chatPanelLive ChatThe chat panel (role="dialog") while open.
minimizeButtonMinimize Live ChatHeader minimize button. Collapses the panel and keeps the chat.
closeButtonClose Live ChatHeader X button. Ends the chat after a confirmation, or collapses the panel when there is no chat.
messageHistoryMessage historyScrollable message list (role="log").
scrollToBottomButtonScroll to bottomFloating button shown when scrolled up with no unread messages.
emojiButtonInsert emojiEmoji picker button, and the emoji popover it opens.
messageInputType your messageMessage text field.
sendButtonSend MessageSend button.
closeConversationDialogDismissKeep chattingBackdrop behind the end-chat confirmation. Activating it dismisses the confirmation without ending the chat.

The end-chat confirmation has no separate aria label: its visible title, closeConversationDialogTitle, is its accessible name.

Emoji picker​

strings.emojiPickerList is an array of [emoji, description] pairs. The built-in default contains 49 entries. Provide your own list to override it entirely.

Date & time formatting​

Message timestamps are formatted with the browser locale by default. Set locale in your config to a BCP 47 tag (e.g. en-GB, es-ES) to control this independently of the strings above.