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)
| Key | Default | Description |
|---|---|---|
botName | Support Assistant | Display 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). |
emptyCta | Start a conversation | Empty-state title, shown (in bold, under the chat icon) before any messages exist. |
emptyMessage | Send a message below and {{botName}} will get back to you. | Empty-state description under the title. Supports {{botName}}. |
loadingMessages | Loading messages... | Shown in the message area while the first page of messages is loading. |
loadMessagesError | Couldn't load messages. | Shown when loading messages fails (network/API error). Paired with the retry button. |
closeConversationDialogTitle | End this chat? | Title of the confirmation dialog shown when the user ends an active conversation. |
closeConversationDialogBody | You can start a new conversation later. | Body text under the confirmation dialog title. |
closeConversationCancel | Keep chatting | Secondary dialog button — dismisses the dialog without ending the conversation. |
closeConversationConfirmButton | End chat | Primary dialog button — confirms ending the chat on the server. |
closingConversation | Ending chat… | Overlay text shown over the message list while the close request is in flight. |
closeConversationError | Couldn't end the chat. Try again. | Shown when the server could not close the conversation. Includes a retry action. |
newMessage | 1 new message | Floating "jump to latest" CTA shown when there is exactly 1 unread message and the user has scrolled up. |
newMessages | {{count}} new messages | Same floating CTA when there are multiple unread messages. Use {{count}} for the number. |
placeholder | Type your message... | Placeholder text inside the message input field. |
retry | Try again | Label for retry buttons used by the load-error and close-error states. |
sendFailed | Message 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.
| Key | Default | Description |
|---|---|---|
chatPanel | Live Chat | aria-label for the chat panel dialog (role="dialog") when open. |
close | Close Live Chat | aria-label for the header close (X) button. |
closeConfirmDialog | Confirm end chat | role="dialog" label for the in-panel end-chat confirmation. |
closeConfirmDismiss | Keep chatting | Label for the backdrop control that dismisses the confirmation without ending the chat. |
messageHistory | Message history | aria-label for the scrollable messages region (role="log"). |
minimize | Minimize Live Chat | aria-label for the minimize button. |
openChat | Open Live Chat | aria-label for the floating trigger button. |
openEmojiPicker | Insert emoji | aria-label for the emoji picker button. |
scrollToBottom | Scroll to bottom | aria-label for the scroll-to-bottom button (shown when scrolled up with no unread messages). |
send | Send Message | aria-label for the send button. |
typeMessage | Type your message | aria-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.