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 emptyMessage and {{count}} in newMessages for interpolation.

Example

setConfig({
apiUrl,
accountNumber,
userEmail,
strings: {
botName: 'Support',
emptyCta: 'Start a conversation',
emptyMessage: 'Send a message below and {{botName}} will get back to you.',
placeholder: 'Type your message…',
loadingMessages: 'Loading messages…',
ariaLabels: {
openChat: 'Open chat',
close: 'Close',
closeConfirmDialog: 'Confirm end chat',
closeConfirmDismiss: 'Keep chatting',
},
emojiPickerList: [
['😀', 'Grinning face'],
['👍', 'Thumbs up'],
// …
],
},
});

Default values (strings)

KeyDefaultDescription
botNameSupport AssistantDisplay name shown in the panel header and interpolated into emptyMessage 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).
emptyCtaStart a conversationEmpty-state title, shown (in bold, under the chat icon) before any messages exist.
emptyMessageSend a message below and {{botName}} will get back to you.Empty-state description under the title. Supports {{botName}}.
loadingMessagesLoading messages...Shown in the message area while the first page of messages is loading.
loadMessagesErrorCouldn't load messages.Shown when loading messages fails (network/API error). Paired with the retry button.
closeConversationDialogTitleEnd this chat?Title of the confirmation dialog shown when the user ends an active conversation.
closeConversationDialogBodyYou can start a new conversation later.Body text under the confirmation dialog title.
closeConversationCancelKeep chattingSecondary dialog button — dismisses the dialog without ending the conversation.
closeConversationConfirmButtonEnd chatPrimary dialog button — confirms ending the chat on the server.
closingConversationEnding chat…Overlay text shown over the message list while the close request is in flight.
closeConversationErrorCouldn't end the chat. Try again.Shown when the server could not close the conversation. Includes a retry action.
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.
placeholderType your message...Placeholder text inside the message input field.
retryTry againLabel for retry buttons used by the load-error and close-error states.
sendFailedMessage couldn't be sent. Try again.Shown when sending a message fails; auto-dismisses after sendErrorDismissMs.

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.

KeyDefaultDescription
chatPanelLive Chataria-label for the chat panel dialog (role="dialog") when open.
closeClose Live Chataria-label for the header close (X) button.
closeConfirmDialogConfirm end chatrole="dialog" label for the in-panel end-chat confirmation.
closeConfirmDismissKeep chattingLabel for the backdrop control that dismisses the confirmation without ending the chat.
messageHistoryMessage historyaria-label for the scrollable messages region (role="log").
minimizeMinimize Live Chataria-label for the minimize button.
openChatOpen Live Chataria-label for the floating trigger button.
openEmojiPickerInsert emojiaria-label for the emoji picker button.
scrollToBottomScroll to bottomaria-label for the scroll-to-bottom button (shown when scrolled up with no unread messages).
sendSend Messagearia-label for the send button.
typeMessageType your messagearia-label for the message input field.

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, fr-FR) to control this independently of the strings above.