-
+
+
+
- {{ writtenBy }}
+ {{ writtenBy }}
{{ t('CONTACTS_LAYOUT.SIDEBAR.NOTES.WROTE') }}
- {{ dynamicTime(note.createdAt) }}
+
+ {{ dynamicTime(note.createdAt) }}
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/Contacts/Pages/ContactsList.vue b/app/javascript/dashboard/components-next/Contacts/Pages/ContactsList.vue
index 33532edcf..7acc2ff55 100644
--- a/app/javascript/dashboard/components-next/Contacts/Pages/ContactsList.vue
+++ b/app/javascript/dashboard/components-next/Contacts/Pages/ContactsList.vue
@@ -71,6 +71,7 @@ const toggleExpanded = id => {
:thumbnail="contact.thumbnail"
:phone-number="contact.phoneNumber"
:additional-attributes="contact.additionalAttributes"
+ :availability-status="contact.availabilityStatus"
:is-expanded="expandedCardId === contact.id"
:is-updating="isUpdating"
@toggle="toggleExpanded(contact.id)"
diff --git a/app/javascript/dashboard/components-next/Conversation/SidepanelSwitch.vue b/app/javascript/dashboard/components-next/Conversation/SidepanelSwitch.vue
new file mode 100644
index 000000000..1ee969275
--- /dev/null
+++ b/app/javascript/dashboard/components-next/Conversation/SidepanelSwitch.vue
@@ -0,0 +1,87 @@
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/Editor/Editor.vue b/app/javascript/dashboard/components-next/Editor/Editor.vue
index 6b5fefab9..510ae67e2 100644
--- a/app/javascript/dashboard/components-next/Editor/Editor.vue
+++ b/app/javascript/dashboard/components-next/Editor/Editor.vue
@@ -4,38 +4,14 @@ import { computed, ref, watch, useSlots } from 'vue';
import WootEditor from 'dashboard/components/widgets/WootWriter/Editor.vue';
const props = defineProps({
- modelValue: {
- type: String,
- default: '',
- },
- label: {
- type: String,
- default: '',
- },
- placeholder: {
- type: String,
- default: '',
- },
- focusOnMount: {
- type: Boolean,
- default: false,
- },
- maxLength: {
- type: Number,
- default: 200,
- },
- showCharacterCount: {
- type: Boolean,
- default: true,
- },
- disabled: {
- type: Boolean,
- default: false,
- },
- message: {
- type: String,
- default: '',
- },
+ modelValue: { type: String, default: '' },
+ label: { type: String, default: '' },
+ placeholder: { type: String, default: '' },
+ focusOnMount: { type: Boolean, default: false },
+ maxLength: { type: Number, default: 200 },
+ showCharacterCount: { type: Boolean, default: true },
+ disabled: { type: Boolean, default: false },
+ message: { type: String, default: '' },
messageType: {
type: String,
default: 'info',
@@ -43,6 +19,7 @@ const props = defineProps({
},
enableVariables: { type: Boolean, default: false },
enableCannedResponses: { type: Boolean, default: true },
+ enabledMenuOptions: { type: Array, default: () => [] },
});
const emit = defineEmits(['update:modelValue']);
@@ -120,6 +97,7 @@ watch(
:disabled="disabled"
:enable-variables="enableVariables"
:enable-canned-responses="enableCannedResponses"
+ :enabled-menu-options="enabledMenuOptions"
@input="handleInput"
@focus="handleFocus"
@blur="handleBlur"
diff --git a/app/javascript/dashboard/components-next/HelpCenter/Pages/CategoryPage/CategoryForm.vue b/app/javascript/dashboard/components-next/HelpCenter/Pages/CategoryPage/CategoryForm.vue
index b9953dabb..18fabd2af 100644
--- a/app/javascript/dashboard/components-next/HelpCenter/Pages/CategoryPage/CategoryForm.vue
+++ b/app/javascript/dashboard/components-next/HelpCenter/Pages/CategoryPage/CategoryForm.vue
@@ -200,6 +200,7 @@ defineExpose({ state, isSubmitDisabled });
:label="state.icon"
color="slate"
size="sm"
+ type="button"
:icon="!state.icon ? 'i-lucide-smile-plus' : ''"
class="!h-[2.4rem] !w-[2.375rem] absolute top-[1.94rem] !outline-none !rounded-[0.438rem] border-0 ltr:left-px rtl:right-px ltr:!rounded-r-none rtl:!rounded-l-none"
@click="isEmojiPickerOpen = !isEmojiPickerOpen"
diff --git a/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalBaseSettings.vue b/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalBaseSettings.vue
index 5a60fefdc..34f1e003f 100644
--- a/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalBaseSettings.vue
+++ b/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalBaseSettings.vue
@@ -7,8 +7,8 @@ import { useStore, useStoreGetters } from 'dashboard/composables/store';
import { uploadFile } from 'dashboard/helper/uploadHelper';
import { checkFileSizeLimit } from 'shared/helpers/FileHelper';
import { useVuelidate } from '@vuelidate/core';
-import { required, minLength } from '@vuelidate/validators';
-import { shouldBeUrl } from 'shared/helpers/Validators';
+import { required, minLength, helpers } from '@vuelidate/validators';
+import { shouldBeUrl, isValidSlug } from 'shared/helpers/Validators';
import Button from 'dashboard/components-next/button/Button.vue';
import Input from 'dashboard/components-next/input/Input.vue';
@@ -61,7 +61,16 @@ const liveChatWidgets = computed(() => {
const rules = {
name: { required, minLength: minLength(2) },
- slug: { required },
+ slug: {
+ required: helpers.withMessage(
+ () => t('HELP_CENTER.CREATE_PORTAL_DIALOG.SLUG.ERROR'),
+ required
+ ),
+ isValidSlug: helpers.withMessage(
+ () => t('HELP_CENTER.CREATE_PORTAL_DIALOG.SLUG.FORMAT_ERROR'),
+ isValidSlug
+ ),
+ },
homePageLink: { shouldBeUrl },
};
@@ -71,9 +80,9 @@ const nameError = computed(() =>
v$.value.name.$error ? t('HELP_CENTER.CREATE_PORTAL_DIALOG.NAME.ERROR') : ''
);
-const slugError = computed(() =>
- v$.value.slug.$error ? t('HELP_CENTER.CREATE_PORTAL_DIALOG.SLUG.ERROR') : ''
-);
+const slugError = computed(() => {
+ return v$.value.slug.$errors[0]?.$message || '';
+});
const homePageLinkError = computed(() =>
v$.value.homePageLink.$error
diff --git a/app/javascript/dashboard/components-next/HelpCenter/PortalSwitcher/CreatePortalDialog.vue b/app/javascript/dashboard/components-next/HelpCenter/PortalSwitcher/CreatePortalDialog.vue
index d245656d0..70c30a241 100644
--- a/app/javascript/dashboard/components-next/HelpCenter/PortalSwitcher/CreatePortalDialog.vue
+++ b/app/javascript/dashboard/components-next/HelpCenter/PortalSwitcher/CreatePortalDialog.vue
@@ -6,8 +6,9 @@ import { useAlert, useTrack } from 'dashboard/composables';
import { PORTALS_EVENTS } from 'dashboard/helper/AnalyticsHelper/events';
import { convertToCategorySlug } from 'dashboard/helper/commons.js';
import { useVuelidate } from '@vuelidate/core';
-import { required, minLength } from '@vuelidate/validators';
+import { required, minLength, helpers } from '@vuelidate/validators';
import { buildPortalURL } from 'dashboard/helper/portalHelper';
+import { isValidSlug } from 'shared/helpers/Validators';
import Dialog from 'dashboard/components-next/dialog/Dialog.vue';
import Input from 'dashboard/components-next/input/Input.vue';
@@ -31,7 +32,16 @@ const state = reactive({
const rules = {
name: { required, minLength: minLength(2) },
- slug: { required },
+ slug: {
+ required: helpers.withMessage(
+ () => t('HELP_CENTER.CREATE_PORTAL_DIALOG.SLUG.ERROR'),
+ required
+ ),
+ isValidSlug: helpers.withMessage(
+ () => t('HELP_CENTER.CREATE_PORTAL_DIALOG.SLUG.FORMAT_ERROR'),
+ isValidSlug
+ ),
+ },
};
const v$ = useVuelidate(rules, state);
@@ -40,9 +50,9 @@ const nameError = computed(() =>
v$.value.name.$error ? t('HELP_CENTER.CREATE_PORTAL_DIALOG.NAME.ERROR') : ''
);
-const slugError = computed(() =>
- v$.value.slug.$error ? t('HELP_CENTER.CREATE_PORTAL_DIALOG.SLUG.ERROR') : ''
-);
+const slugError = computed(() => {
+ return v$.value.slug.$errors[0]?.$message || '';
+});
const isSubmitDisabled = computed(() => v$.value.$invalid);
@@ -131,6 +141,7 @@ defineExpose({ dialogRef });
:message="
nameError || t('HELP_CENTER.CREATE_PORTAL_DIALOG.NAME.MESSAGE')
"
+ @blur="v$.name.$touch()"
/>
diff --git a/app/javascript/dashboard/components-next/SidebarActionsHeader.story.vue b/app/javascript/dashboard/components-next/SidebarActionsHeader.story.vue
new file mode 100644
index 000000000..13d528240
--- /dev/null
+++ b/app/javascript/dashboard/components-next/SidebarActionsHeader.story.vue
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/SidebarActionsHeader.vue b/app/javascript/dashboard/components-next/SidebarActionsHeader.vue
new file mode 100644
index 000000000..210ddfa0e
--- /dev/null
+++ b/app/javascript/dashboard/components-next/SidebarActionsHeader.vue
@@ -0,0 +1,47 @@
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/TeleportWithDirection.vue b/app/javascript/dashboard/components-next/TeleportWithDirection.vue
new file mode 100644
index 000000000..3e9009f08
--- /dev/null
+++ b/app/javascript/dashboard/components-next/TeleportWithDirection.vue
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/button/Button.vue b/app/javascript/dashboard/components-next/button/Button.vue
index c54bd395a..dde1d3d9a 100644
--- a/app/javascript/dashboard/components-next/button/Button.vue
+++ b/app/javascript/dashboard/components-next/button/Button.vue
@@ -117,7 +117,7 @@ const STYLE_CONFIG = {
'text-n-ruby-11 hover:enabled:bg-n-ruby-9/10 focus-visible:bg-n-ruby-9/10 outline-n-ruby-8',
ghost:
'text-n-ruby-11 hover:enabled:bg-n-alpha-2 focus-visible:bg-n-alpha-2 outline-transparent',
- link: 'text-n-ruby-9 hover:enabled:underline focus-visible:underline outline-transparent',
+ link: 'text-n-ruby-9 dark:text-n-ruby-11 hover:enabled:underline focus-visible:underline outline-transparent',
},
amber: {
solid:
diff --git a/app/javascript/dashboard/components-next/button/ConfirmButton.story.vue b/app/javascript/dashboard/components-next/button/ConfirmButton.story.vue
new file mode 100644
index 000000000..673661a74
--- /dev/null
+++ b/app/javascript/dashboard/components-next/button/ConfirmButton.story.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/button/ConfirmButton.vue b/app/javascript/dashboard/components-next/button/ConfirmButton.vue
new file mode 100644
index 000000000..854d5d452
--- /dev/null
+++ b/app/javascript/dashboard/components-next/button/ConfirmButton.vue
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ {{ confirmHint }}
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/captain/PageLayout.vue b/app/javascript/dashboard/components-next/captain/PageLayout.vue
index e9fae9ca7..495db1838 100644
--- a/app/javascript/dashboard/components-next/captain/PageLayout.vue
+++ b/app/javascript/dashboard/components-next/captain/PageLayout.vue
@@ -2,6 +2,7 @@
import { computed } from 'vue';
import { usePolicy } from 'dashboard/composables/usePolicy';
import Button from 'dashboard/components-next/button/Button.vue';
+import BackButton from 'dashboard/components/widgets/BackButton.vue';
import PaginationFooter from 'dashboard/components-next/pagination/PaginationFooter.vue';
import Spinner from 'dashboard/components-next/spinner/Spinner.vue';
import Policy from 'dashboard/components/policy.vue';
@@ -23,6 +24,10 @@ const props = defineProps({
type: String,
default: '',
},
+ backUrl: {
+ type: [String, Object],
+ default: '',
+ },
buttonPolicy: {
type: Array,
default: () => [],
@@ -39,6 +44,10 @@ const props = defineProps({
type: Boolean,
default: false,
},
+ showKnowMore: {
+ type: Boolean,
+ default: true,
+ },
isEmpty: {
type: Boolean,
default: false,
@@ -67,25 +76,29 @@ const handlePageChange = event => {
-
+
+
{{ headerTitle }}
-
@@ -103,8 +116,8 @@ const handlePageChange = event => {
-
-
+
+
{
-
+
{{ name }}
-
+
+import { ref } from 'vue';
+import { useI18n } from 'vue-i18n';
+import NextButton from 'dashboard/components-next/button/Button.vue';
+import MessageList from './MessageList.vue';
+import CaptainAssistant from 'dashboard/api/captain/assistant';
+
+const { assistantId } = defineProps({
+ assistantId: {
+ type: Number,
+ required: true,
+ },
+});
+
+const { t } = useI18n();
+const messages = ref([]);
+const newMessage = ref('');
+const isLoading = ref(false);
+
+const formatMessagesForApi = () => {
+ return messages.value.map(message => ({
+ role: message.sender,
+ content: message.content,
+ }));
+};
+
+const resetConversation = () => {
+ messages.value = [];
+ newMessage.value = '';
+};
+
+const sendMessage = async () => {
+ if (!newMessage.value.trim() || isLoading.value) return;
+
+ const userMessage = {
+ content: newMessage.value,
+ sender: 'user',
+ timestamp: new Date().toISOString(),
+ };
+ messages.value.push(userMessage);
+ const currentMessage = newMessage.value;
+ newMessage.value = '';
+
+ try {
+ isLoading.value = true;
+ const { data } = await CaptainAssistant.playground({
+ assistantId,
+ messageContent: currentMessage,
+ messageHistory: formatMessagesForApi(),
+ });
+
+ messages.value.push({
+ content: data.response,
+ sender: 'assistant',
+ timestamp: new Date().toISOString(),
+ });
+ } catch (error) {
+ // eslint-disable-next-line no-console
+ console.error('Error getting assistant response:', error);
+ } finally {
+ isLoading.value = false;
+ }
+};
+
+
+
+
+
+
+
+ {{ t('CAPTAIN.PLAYGROUND.HEADER') }}
+
+
+
+
+ {{ t('CAPTAIN.PLAYGROUND.DESCRIPTION') }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('CAPTAIN.PLAYGROUND.CREDIT_NOTE') }}
+
+
+
diff --git a/app/javascript/dashboard/components-next/captain/assistant/MessageList.vue b/app/javascript/dashboard/components-next/captain/assistant/MessageList.vue
new file mode 100644
index 000000000..3eca35744
--- /dev/null
+++ b/app/javascript/dashboard/components-next/captain/assistant/MessageList.vue
@@ -0,0 +1,91 @@
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/assistant/EditAssistantForm.vue b/app/javascript/dashboard/components-next/captain/pageComponents/assistant/EditAssistantForm.vue
new file mode 100644
index 000000000..3134d7062
--- /dev/null
+++ b/app/javascript/dashboard/components-next/captain/pageComponents/assistant/EditAssistantForm.vue
@@ -0,0 +1,331 @@
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/copilot/Copilot.vue b/app/javascript/dashboard/components-next/copilot/Copilot.vue
index e284bb983..878842d67 100644
--- a/app/javascript/dashboard/components-next/copilot/Copilot.vue
+++ b/app/javascript/dashboard/components-next/copilot/Copilot.vue
@@ -1,28 +1,24 @@
-
-
-
-
-
-
-
-
-
-
+
+
-
-
- {{ $t('COPILOT.TRY_THESE_PROMPTS') }}
-
-
+
+
+
+
+
+
+
+
+
emit('setAssistant', $event)"
/>
-
-
+
diff --git a/app/javascript/dashboard/components-next/copilot/CopilotAgentMessage.vue b/app/javascript/dashboard/components-next/copilot/CopilotAgentMessage.vue
index ef8c2faf4..f1ad2afc1 100644
--- a/app/javascript/dashboard/components-next/copilot/CopilotAgentMessage.vue
+++ b/app/javascript/dashboard/components-next/copilot/CopilotAgentMessage.vue
@@ -1,31 +1,17 @@
-
-
-
-
{{ $t('CAPTAIN.COPILOT.YOU') }}
-
- {{ message.content }}
-
+
+
{{ $t('CAPTAIN.COPILOT.YOU') }}
+
+ {{ message.content }}
diff --git a/app/javascript/dashboard/components-next/copilot/CopilotAssistantMessage.vue b/app/javascript/dashboard/components-next/copilot/CopilotAssistantMessage.vue
index 1877e1630..2447a7164 100644
--- a/app/javascript/dashboard/components-next/copilot/CopilotAssistantMessage.vue
+++ b/app/javascript/dashboard/components-next/copilot/CopilotAssistantMessage.vue
@@ -9,9 +9,12 @@ import { COPILOT_EVENTS } from 'dashboard/helper/AnalyticsHelper/events';
import MessageFormatter from 'shared/helpers/MessageFormatter.js';
import Button from 'dashboard/components-next/button/Button.vue';
-import Avatar from '../avatar/Avatar.vue';
const props = defineProps({
+ isLastMessage: {
+ type: Boolean,
+ default: false,
+ },
message: {
type: Object,
required: true,
@@ -21,6 +24,15 @@ const props = defineProps({
required: true,
},
});
+const hasEmptyMessageContent = computed(() => !props.message?.content);
+
+const showUseButton = computed(() => {
+ return (
+ !hasEmptyMessageContent.value &&
+ props.message.reply_suggestion &&
+ props.isLastMessage
+ );
+});
const messageContent = computed(() => {
const formatter = new MessageFormatter(props.message.content);
@@ -33,8 +45,6 @@ const insertIntoRichEditor = computed(() => {
);
});
-const hasEmptyMessageContent = computed(() => !props.message?.content);
-
const useCopilotResponse = () => {
if (insertIntoRichEditor.value) {
emitter.emit(BUS_EVENTS.INSERT_INTO_RICH_EDITOR, props.message?.content);
@@ -46,33 +56,25 @@ const useCopilotResponse = () => {
-
-
+ {{ $t('CAPTAIN.NAME') }}
+
+ {{ $t('CAPTAIN.COPILOT.EMPTY_MESSAGE') }}
+
+
-
-
{{ $t('CAPTAIN.NAME') }}
-
- {{ $t('CAPTAIN.COPILOT.EMPTY_MESSAGE') }}
-
-
diff --git a/app/javascript/dashboard/components-next/copilot/CopilotEmptyState.vue b/app/javascript/dashboard/components-next/copilot/CopilotEmptyState.vue
new file mode 100644
index 000000000..39a7eb35a
--- /dev/null
+++ b/app/javascript/dashboard/components-next/copilot/CopilotEmptyState.vue
@@ -0,0 +1,106 @@
+
+
+
+
+
+
+
+
+ {{ $t('CAPTAIN.COPILOT.PANEL_TITLE') }}
+
+
+ {{ $t('CAPTAIN.COPILOT.KICK_OFF_MESSAGE') }}
+
+
+
+
+
+ {{ $t('CAPTAIN.ASSISTANTS.NO_ASSISTANTS_AVAILABLE') }}
+
+
+ {{ $t('CAPTAIN.ASSISTANTS.ADD_NEW') }}
+
+
+
+
+ {{ $t('CAPTAIN.COPILOT.TRY_THESE_PROMPTS') }}
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components-next/copilot/CopilotInput.vue b/app/javascript/dashboard/components-next/copilot/CopilotInput.vue
index bf14945b5..c8f1a0056 100644
--- a/app/javascript/dashboard/components-next/copilot/CopilotInput.vue
+++ b/app/javascript/dashboard/components-next/copilot/CopilotInput.vue
@@ -13,19 +13,16 @@ const sendMessage = () => {
-
-
+
diff --git a/app/javascript/dashboard/components/widgets/conversation/ConversationSidebar.vue b/app/javascript/dashboard/components/widgets/conversation/ConversationSidebar.vue
index c91232cc5..83a8bb9e6 100644
--- a/app/javascript/dashboard/components/widgets/conversation/ConversationSidebar.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/ConversationSidebar.vue
@@ -1,81 +1,36 @@
diff --git a/app/javascript/dashboard/components/widgets/conversation/Message.vue b/app/javascript/dashboard/components/widgets/conversation/Message.vue
index 253eaeaa7..bed90fd05 100644
--- a/app/javascript/dashboard/components/widgets/conversation/Message.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/Message.vue
@@ -185,8 +185,17 @@ export default {
contextMenuEnabledOptions() {
return {
copy: this.hasText,
- delete: this.hasText || this.hasAttachments,
- cannedResponse: this.isOutgoing && this.hasText,
+ delete:
+ (this.hasText || this.hasAttachments) &&
+ !this.isMessageDeleted &&
+ !this.isFailed,
+ cannedResponse:
+ this.isOutgoing && this.hasText && !this.isMessageDeleted,
+ copyLink: !this.isFailed || !this.isProcessing,
+ translate:
+ (!this.isFailed || !this.isProcessing) &&
+ !this.isMessageDeleted &&
+ this.hasText,
replyTo: !this.data.private && this.inboxSupportsReplyTo.outgoing,
};
},
@@ -328,7 +337,7 @@ export default {
return !this.sender.type || this.sender.type === 'agent_bot';
},
shouldShowContextMenu() {
- return !(this.isFailed || this.isPending || this.isUnsupported);
+ return !this.isUnsupported;
},
showAvatar() {
if (this.isOutgoing || this.isTemplate) {
diff --git a/app/javascript/dashboard/components/widgets/conversation/MessagesView.vue b/app/javascript/dashboard/components/widgets/conversation/MessagesView.vue
index 8d0c77f1b..5f020d9ba 100644
--- a/app/javascript/dashboard/components/widgets/conversation/MessagesView.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/MessagesView.vue
@@ -1,5 +1,5 @@
-
-
diff --git a/app/javascript/dashboard/components/widgets/conversation/components/GalleryView.vue b/app/javascript/dashboard/components/widgets/conversation/components/GalleryView.vue
index f5aa1e556..152f3c0a1 100644
--- a/app/javascript/dashboard/components/widgets/conversation/components/GalleryView.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/components/GalleryView.vue
@@ -11,6 +11,7 @@ import { downloadFile } from '@chatwoot/utils';
import NextButton from 'dashboard/components-next/button/Button.vue';
import Thumbnail from 'dashboard/components/widgets/Thumbnail.vue';
+import TeleportWithDirection from 'dashboard/components-next/TeleportWithDirection.vue';
const props = defineProps({
attachment: {
@@ -166,7 +167,7 @@ onMounted(() => {
-
+
{
{
{
-
+
diff --git a/app/javascript/dashboard/components/widgets/conversation/components/SLACardLabel.vue b/app/javascript/dashboard/components/widgets/conversation/components/SLACardLabel.vue
index f9cc888cc..bb6ee48d2 100644
--- a/app/javascript/dashboard/components/widgets/conversation/components/SLACardLabel.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/components/SLACardLabel.vue
@@ -1,132 +1,115 @@
-
-
+
@@ -151,7 +134,7 @@ export default {
diff --git a/app/javascript/dashboard/components/widgets/conversation/contextMenu/Index.vue b/app/javascript/dashboard/components/widgets/conversation/contextMenu/Index.vue
index fccff3457..6c788bbd2 100644
--- a/app/javascript/dashboard/components/widgets/conversation/contextMenu/Index.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/contextMenu/Index.vue
@@ -8,6 +8,7 @@ import MenuItem from './menuItem.vue';
import MenuItemWithSubmenu from './menuItemWithSubmenu.vue';
import wootConstants from 'dashboard/constants/globals';
import AgentLoadingPlaceholder from './agentLoadingPlaceholder.vue';
+import { useAdmin } from 'dashboard/composables/useAdmin';
export default {
components: {
@@ -45,7 +46,14 @@ export default {
'assignAgent',
'assignTeam',
'assignLabel',
+ 'deleteConversation',
],
+ setup() {
+ const { isAdmin } = useAdmin();
+ return {
+ isAdmin,
+ };
+ },
data() {
return {
STATUS_TYPE: wootConstants.STATUS_TYPE,
@@ -121,6 +129,11 @@ export default {
icon: 'people-team-add',
label: this.$t('CONVERSATION.CARD_CONTEXT_MENU.ASSIGN_TEAM'),
},
+ deleteOption: {
+ key: 'delete',
+ icon: 'delete',
+ label: this.$t('CONVERSATION.CARD_CONTEXT_MENU.DELETE'),
+ },
};
},
computed: {
@@ -178,6 +191,9 @@ export default {
assignPriority(priority) {
this.$emit('assignPriority', priority);
},
+ deleteConversation() {
+ this.$emit('deleteConversation', this.chatId);
+ },
show(key) {
// If the conversation status is same as the action, then don't display the option
// i.e.: Don't show an option to resolve if the conversation is already resolved.
@@ -277,5 +293,13 @@ export default {
@click.stop="$emit('assignTeam', team)"
/>
+
+
+
+
diff --git a/app/javascript/dashboard/components/widgets/conversation/linear/Issue.vue b/app/javascript/dashboard/components/widgets/conversation/linear/Issue.vue
deleted file mode 100644
index 2fe46c968..000000000
--- a/app/javascript/dashboard/components/widgets/conversation/linear/Issue.vue
+++ /dev/null
@@ -1,123 +0,0 @@
-
-
-
-
-
-
-
-
- {{ issue.title }}
-
-
- {{ issue.description }}
-
-
-
-
-
-
-
-
- {{ issue.state.name }}
-
-
-
-
-
-
{{ priorityLabel }}
-
-
-
-
-
-
-
- {{
- $t('INTEGRATION_SETTINGS.LINEAR.ISSUE.CREATED_AT', {
- createdAt: formattedDate,
- })
- }}
-
-
-
-
diff --git a/app/javascript/dashboard/components/widgets/conversation/linear/IssueHeader.vue b/app/javascript/dashboard/components/widgets/conversation/linear/IssueHeader.vue
index 655efa602..141f6d75a 100644
--- a/app/javascript/dashboard/components/widgets/conversation/linear/IssueHeader.vue
+++ b/app/javascript/dashboard/components/widgets/conversation/linear/IssueHeader.vue
@@ -1,5 +1,4 @@
-
+
-
- {{ identifier }}
-
-
+
+
+
+ {{ identifier }}
+
+
+
+
-
+
+
diff --git a/app/javascript/dashboard/components/widgets/conversation/linear/IssuesList.vue b/app/javascript/dashboard/components/widgets/conversation/linear/IssuesList.vue
new file mode 100644
index 000000000..160394142
--- /dev/null
+++ b/app/javascript/dashboard/components/widgets/conversation/linear/IssuesList.vue
@@ -0,0 +1,132 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ $t('INTEGRATION_SETTINGS.LINEAR.NO_LINKED_ISSUES') }}
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components/widgets/conversation/linear/LinearIssueItem.vue b/app/javascript/dashboard/components/widgets/conversation/linear/LinearIssueItem.vue
new file mode 100644
index 000000000..e9d1ca500
--- /dev/null
+++ b/app/javascript/dashboard/components/widgets/conversation/linear/LinearIssueItem.vue
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+
+
+ {{ issue.title }}
+
+
+
+ {{ issue.description }}
+
+
+
+
+
+
+
+
+ {{ assignee.name }}
+
+
+
+
+
+
+
+
+ {{ issue.state?.name }}
+
+
+
+
+
+
+
+
+ {{ priorityLabel }}
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/components/widgets/conversation/linear/LinearSetupCTA.vue b/app/javascript/dashboard/components/widgets/conversation/linear/LinearSetupCTA.vue
new file mode 100644
index 000000000..f7394a092
--- /dev/null
+++ b/app/javascript/dashboard/components/widgets/conversation/linear/LinearSetupCTA.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
![]()
+
![]()
+
+
+
+
+ {{ $t('INTEGRATION_SETTINGS.LINEAR.CTA.TITLE') }}
+
+
+ {{ $t('INTEGRATION_SETTINGS.LINEAR.CTA.DESCRIPTION') }}
+
+
+ {{ $t('INTEGRATION_SETTINGS.LINEAR.CTA.AGENT_DESCRIPTION') }}
+
+
+
+
+ {{ $t('INTEGRATION_SETTINGS.LINEAR.CTA.BUTTON_TEXT') }}
+
+
+
diff --git a/app/javascript/dashboard/components/widgets/conversation/linear/index.vue b/app/javascript/dashboard/components/widgets/conversation/linear/index.vue
deleted file mode 100644
index 476c4ecac..000000000
--- a/app/javascript/dashboard/components/widgets/conversation/linear/index.vue
+++ /dev/null
@@ -1,143 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/components/widgets/conversation/specs/MoreActions.spec.js b/app/javascript/dashboard/components/widgets/conversation/specs/MoreActions.spec.js
deleted file mode 100644
index ba37c3b22..000000000
--- a/app/javascript/dashboard/components/widgets/conversation/specs/MoreActions.spec.js
+++ /dev/null
@@ -1,110 +0,0 @@
-import { mount } from '@vue/test-utils';
-import { createStore } from 'vuex';
-import MoreActions from '../MoreActions.vue';
-import FluentIcon from 'shared/components/FluentIcon/DashboardIcon.vue';
-
-vi.mock('shared/helpers/mitt', () => ({
- emitter: {
- emit: vi.fn(),
- on: vi.fn(),
- off: vi.fn(),
- },
-}));
-
-const mockDirective = {
- mounted: () => {},
-};
-
-import { emitter } from 'shared/helpers/mitt';
-
-describe('MoveActions', () => {
- let currentChat = { id: 8, muted: false };
- let store = null;
- let muteConversation = null;
- let unmuteConversation = null;
-
- beforeEach(() => {
- muteConversation = vi.fn(() => Promise.resolve());
- unmuteConversation = vi.fn(() => Promise.resolve());
-
- store = createStore({
- state: {
- authenticated: true,
- currentChat,
- },
- getters: {
- getSelectedChat: () => currentChat,
- },
- modules: {
- conversations: {
- namespaced: false,
- actions: { muteConversation, unmuteConversation },
- },
- },
- });
- });
-
- const createWrapper = () =>
- mount(MoreActions, {
- global: {
- plugins: [store],
- components: {
- 'fluent-icon': FluentIcon,
- },
- directives: {
- 'on-clickaway': mockDirective,
- },
- },
- });
-
- describe('muting discussion', () => {
- it('triggers "muteConversation"', async () => {
- const wrapper = createWrapper();
- await wrapper.find('button:first-child').trigger('click');
-
- expect(muteConversation).toHaveBeenCalledTimes(1);
- expect(muteConversation).toHaveBeenCalledWith(
- expect.any(Object), // First argument is the Vuex context object
- currentChat.id // Second argument is the ID of the conversation
- );
- });
-
- it('shows alert', async () => {
- const wrapper = createWrapper();
- await wrapper.find('button:first-child').trigger('click');
-
- expect(emitter.emit).toBeCalledWith('newToastMessage', {
- message:
- 'This contact is blocked successfully. You will not be notified of any future conversations.',
- action: null,
- });
- });
- });
-
- describe('unmuting discussion', () => {
- beforeEach(() => {
- currentChat.muted = true;
- });
-
- it('triggers "unmuteConversation"', async () => {
- const wrapper = createWrapper();
- await wrapper.find('button:first-child').trigger('click');
-
- expect(unmuteConversation).toHaveBeenCalledTimes(1);
- expect(unmuteConversation).toHaveBeenCalledWith(
- expect.any(Object), // First argument is the Vuex context object
- currentChat.id // Second argument is the ID of the conversation
- );
- });
-
- it('shows alert', async () => {
- const wrapper = createWrapper();
- await wrapper.find('button:first-child').trigger('click');
-
- expect(emitter.emit).toBeCalledWith('newToastMessage', {
- message: 'This contact is unblocked successfully.',
- action: null,
- });
- });
- });
-});
diff --git a/app/javascript/dashboard/composables/spec/useFontSize.spec.js b/app/javascript/dashboard/composables/spec/useFontSize.spec.js
index 9253a3988..52d22478f 100644
--- a/app/javascript/dashboard/composables/spec/useFontSize.spec.js
+++ b/app/javascript/dashboard/composables/spec/useFontSize.spec.js
@@ -43,7 +43,7 @@ describe('useFontSize', () => {
it('returns fontSizeOptions with correct structure', () => {
const { fontSizeOptions } = useFontSize();
- expect(fontSizeOptions).toHaveLength(6);
+ expect(fontSizeOptions).toHaveLength(5);
expect(fontSizeOptions[0]).toHaveProperty('value');
expect(fontSizeOptions[0]).toHaveProperty('label');
@@ -59,12 +59,6 @@ describe('useFontSize', () => {
label:
'PROFILE_SETTINGS.FORM.INTERFACE_SECTION.FONT_SIZE.OPTIONS.SMALLER',
});
-
- expect(fontSizeOptions.find(option => option.value === '22px')).toEqual({
- value: '22px',
- label:
- 'PROFILE_SETTINGS.FORM.INTERFACE_SECTION.FONT_SIZE.OPTIONS.EXTRA_LARGE',
- });
});
it('returns currentFontSize from UI settings', () => {
@@ -84,9 +78,6 @@ describe('useFontSize', () => {
applyFontSize('14px');
expect(document.documentElement.style.fontSize).toBe('14px');
- applyFontSize('22px');
- expect(document.documentElement.style.fontSize).toBe('22px');
-
applyFontSize('16px');
expect(document.documentElement.style.fontSize).toBe('16px');
});
@@ -145,8 +136,6 @@ describe('useFontSize', () => {
'Smaller',
'PROFILE_SETTINGS.FORM.INTERFACE_SECTION.FONT_SIZE.OPTIONS.DEFAULT':
'Default',
- 'PROFILE_SETTINGS.FORM.INTERFACE_SECTION.FONT_SIZE.OPTIONS.EXTRA_LARGE':
- 'Extra Large',
};
return translations[key] || key;
});
@@ -160,9 +149,6 @@ describe('useFontSize', () => {
expect(fontSizeOptions.find(option => option.value === '16px').label).toBe(
'Default'
);
- expect(fontSizeOptions.find(option => option.value === '22px').label).toBe(
- 'Extra Large'
- );
// Verify translation function was called with correct keys
expect(mockTranslate).toHaveBeenCalledWith(
diff --git a/app/javascript/dashboard/composables/spec/useImpersonation.spec.js b/app/javascript/dashboard/composables/spec/useImpersonation.spec.js
new file mode 100644
index 000000000..e21892655
--- /dev/null
+++ b/app/javascript/dashboard/composables/spec/useImpersonation.spec.js
@@ -0,0 +1,37 @@
+import { describe, it, expect, beforeEach, vi } from 'vitest';
+import { useImpersonation } from '../useImpersonation';
+
+vi.mock('shared/helpers/sessionStorage', () => ({
+ __esModule: true,
+ default: {
+ get: vi.fn(),
+ set: vi.fn(),
+ },
+}));
+
+import SessionStorage from 'shared/helpers/sessionStorage';
+import { SESSION_STORAGE_KEYS } from 'dashboard/constants/sessionStorage';
+
+describe('useImpersonation', () => {
+ beforeEach(() => {
+ vi.clearAllMocks();
+ });
+
+ it('should return true if impersonation flag is set in session storage', () => {
+ SessionStorage.get.mockReturnValue(true);
+ const { isImpersonating } = useImpersonation();
+ expect(isImpersonating.value).toBe(true);
+ expect(SessionStorage.get).toHaveBeenCalledWith(
+ SESSION_STORAGE_KEYS.IMPERSONATION_USER
+ );
+ });
+
+ it('should return false if impersonation flag is not set in session storage', () => {
+ SessionStorage.get.mockReturnValue(false);
+ const { isImpersonating } = useImpersonation();
+ expect(isImpersonating.value).toBe(false);
+ expect(SessionStorage.get).toHaveBeenCalledWith(
+ SESSION_STORAGE_KEYS.IMPERSONATION_USER
+ );
+ });
+});
diff --git a/app/javascript/dashboard/composables/useAccount.js b/app/javascript/dashboard/composables/useAccount.js
index 8ace2a5e1..5a8441d33 100644
--- a/app/javascript/dashboard/composables/useAccount.js
+++ b/app/javascript/dashboard/composables/useAccount.js
@@ -1,6 +1,6 @@
import { computed } from 'vue';
import { useRoute } from 'vue-router';
-import { useMapGetter } from './store';
+import { useMapGetter, useStore } from './store';
/**
* Composable for account-related operations.
@@ -12,6 +12,7 @@ export function useAccount() {
* @type {import('vue').ComputedRef
}
*/
const route = useRoute();
+ const store = useStore();
const getAccountFn = useMapGetter('accounts/getAccount');
const isOnChatwootCloud = useMapGetter('globalConfig/isOnChatwootCloud');
const isFeatureEnabledonAccount = useMapGetter(
@@ -44,6 +45,13 @@ export function useAccount() {
};
};
+ const updateAccount = async (data, options) => {
+ await store.dispatch('accounts/update', {
+ ...data,
+ options,
+ });
+ };
+
return {
accountId,
route,
@@ -52,5 +60,6 @@ export function useAccount() {
accountScopedRoute,
isCloudFeatureEnabled,
isOnChatwootCloud,
+ updateAccount,
};
}
diff --git a/app/javascript/dashboard/composables/useFontSize.js b/app/javascript/dashboard/composables/useFontSize.js
index 9bb8d4841..d7177a5fb 100644
--- a/app/javascript/dashboard/composables/useFontSize.js
+++ b/app/javascript/dashboard/composables/useFontSize.js
@@ -19,7 +19,6 @@ const FONT_SIZE_OPTIONS = {
DEFAULT: '16px',
LARGE: '18px',
LARGER: '20px',
- EXTRA_LARGE: '22px',
};
/**
diff --git a/app/javascript/dashboard/composables/useImpersonation.js b/app/javascript/dashboard/composables/useImpersonation.js
new file mode 100644
index 000000000..4728a02f7
--- /dev/null
+++ b/app/javascript/dashboard/composables/useImpersonation.js
@@ -0,0 +1,10 @@
+import { computed } from 'vue';
+import SessionStorage from 'shared/helpers/sessionStorage';
+import { SESSION_STORAGE_KEYS } from 'dashboard/constants/sessionStorage';
+
+export function useImpersonation() {
+ const isImpersonating = computed(() => {
+ return SessionStorage.get(SESSION_STORAGE_KEYS.IMPERSONATION_USER);
+ });
+ return { isImpersonating };
+}
diff --git a/app/javascript/dashboard/composables/usePolicy.js b/app/javascript/dashboard/composables/usePolicy.js
index dc203cbac..a76ffbf1d 100644
--- a/app/javascript/dashboard/composables/usePolicy.js
+++ b/app/javascript/dashboard/composables/usePolicy.js
@@ -129,6 +129,7 @@ export function usePolicy() {
return {
checkPermissions,
shouldShowPaywall,
+ isFeatureFlagEnabled,
shouldShow,
};
}
diff --git a/app/javascript/dashboard/composables/useUISettings.js b/app/javascript/dashboard/composables/useUISettings.js
index 418011e10..964c615ad 100644
--- a/app/javascript/dashboard/composables/useUISettings.js
+++ b/app/javascript/dashboard/composables/useUISettings.js
@@ -6,8 +6,10 @@ export const DEFAULT_CONVERSATION_SIDEBAR_ITEMS_ORDER = Object.freeze([
{ name: 'macros' },
{ name: 'conversation_info' },
{ name: 'contact_attributes' },
+ { name: 'contact_notes' },
{ name: 'previous_conversation' },
{ name: 'conversation_participants' },
+ { name: 'linear_issues' },
{ name: 'shopify_orders' },
]);
diff --git a/app/javascript/dashboard/constants/editor.js b/app/javascript/dashboard/constants/editor.js
index 157ec46ae..9a99516e8 100644
--- a/app/javascript/dashboard/constants/editor.js
+++ b/app/javascript/dashboard/constants/editor.js
@@ -33,6 +33,14 @@ export const ARTICLE_EDITOR_MENU_OPTIONS = [
'code',
];
+export const WIDGET_BUILDER_EDITOR_MENU_OPTIONS = [
+ 'strong',
+ 'em',
+ 'link',
+ 'undo',
+ 'redo',
+];
+
export const MESSAGE_EDITOR_IMAGE_RESIZES = [
{
name: 'Small',
diff --git a/app/javascript/dashboard/constants/sessionStorage.js b/app/javascript/dashboard/constants/sessionStorage.js
new file mode 100644
index 000000000..72dc5e0f3
--- /dev/null
+++ b/app/javascript/dashboard/constants/sessionStorage.js
@@ -0,0 +1,3 @@
+export const SESSION_STORAGE_KEYS = {
+ IMPERSONATION_USER: 'impersonationUser',
+};
diff --git a/app/javascript/dashboard/helper/actionCable.js b/app/javascript/dashboard/helper/actionCable.js
index adb33eb6d..991576e66 100644
--- a/app/javascript/dashboard/helper/actionCable.js
+++ b/app/javascript/dashboard/helper/actionCable.js
@@ -3,6 +3,9 @@ import BaseActionCableConnector from '../../shared/helpers/BaseActionCableConnec
import DashboardAudioNotificationHelper from './AudioAlerts/DashboardAudioNotificationHelper';
import { BUS_EVENTS } from 'shared/constants/busEvents';
import { emitter } from 'shared/helpers/mitt';
+import { useImpersonation } from 'dashboard/composables/useImpersonation';
+
+const { isImpersonating } = useImpersonation();
class ActionCableConnector extends BaseActionCableConnector {
constructor(app, pubsubToken) {
@@ -30,6 +33,7 @@ class ActionCableConnector extends BaseActionCableConnector {
'conversation.read': this.onConversationRead,
'conversation.updated': this.onConversationUpdated,
'account.cache_invalidated': this.onCacheInvalidate,
+ 'copilot.message.created': this.onCopilotMessageCreated,
};
}
@@ -52,6 +56,7 @@ class ActionCableConnector extends BaseActionCableConnector {
};
onPresenceUpdate = data => {
+ if (isImpersonating.value) return;
this.app.$store.dispatch('contacts/updatePresence', data.contacts);
this.app.$store.dispatch('agents/updatePresence', data.users);
this.app.$store.dispatch('setCurrentUserAvailability', data.users);
@@ -185,6 +190,10 @@ class ActionCableConnector extends BaseActionCableConnector {
this.app.$store.dispatch('notifications/updateNotification', data);
};
+ onCopilotMessageCreated = data => {
+ this.app.$store.dispatch('copilotMessages/upsert', data);
+ };
+
onCacheInvalidate = data => {
const keys = data.cache_keys;
this.app.$store.dispatch('labels/revalidate', { newKey: keys.label });
diff --git a/app/javascript/dashboard/helper/auditlogHelper.js b/app/javascript/dashboard/helper/auditlogHelper.js
index 6f5a4dede..706d09ba2 100644
--- a/app/javascript/dashboard/helper/auditlogHelper.js
+++ b/app/javascript/dashboard/helper/auditlogHelper.js
@@ -36,6 +36,7 @@ const translationKeys = {
'teammember:create': `AUDIT_LOGS.TEAM_MEMBER.ADD`,
'teammember:destroy': `AUDIT_LOGS.TEAM_MEMBER.REMOVE`,
'account:update': `AUDIT_LOGS.ACCOUNT.EDIT`,
+ 'conversation:destroy': `AUDIT_LOGS.CONVERSATION.DELETE`,
};
function extractAttrChange(attrChange) {
@@ -168,6 +169,11 @@ export function generateTranslationPayload(auditLogItem, agentList) {
const auditableType = auditLogItem.auditable_type.toLowerCase();
const action = auditLogItem.action.toLowerCase();
+ if (auditableType === 'conversation' && action === 'destroy') {
+ translationPayload.id =
+ auditLogItem.audited_changes?.display_id || auditLogItem.auditable_id;
+ }
+
if (auditableType === 'accountuser') {
translationPayload = handleAccountUser(
auditLogItem,
diff --git a/app/javascript/dashboard/helper/portalHelper.js b/app/javascript/dashboard/helper/portalHelper.js
index 09b648330..4df38c5bc 100644
--- a/app/javascript/dashboard/helper/portalHelper.js
+++ b/app/javascript/dashboard/helper/portalHelper.js
@@ -1,6 +1,44 @@
-export const buildPortalURL = portalSlug => {
- const { hostURL, helpCenterURL } = window.chatwootConfig;
+/**
+ * Formats a custom domain with https protocol if needed
+ * @param {string} customDomain - The custom domain to format
+ * @returns {string} Formatted domain with https protocol
+ */
+const formatCustomDomain = customDomain =>
+ customDomain.startsWith('https') ? customDomain : `https://${customDomain}`;
+
+/**
+ * Gets the default base URL from configuration
+ * @returns {string} The default base URL
+ * @throws {Error} If no valid base URL is found
+ */
+const getDefaultBaseURL = () => {
+ const { hostURL, helpCenterURL } = window.chatwootConfig || {};
const baseURL = helpCenterURL || hostURL || '';
+
+ if (!baseURL) {
+ throw new Error('No valid base URL found in configuration');
+ }
+
+ return baseURL;
+};
+
+/**
+ * Gets the base URL from configuration or custom domain
+ * @param {string} [customDomain] - Optional custom domain for the portal
+ * @returns {string} The base URL for the portal
+ */
+const getPortalBaseURL = customDomain =>
+ customDomain ? formatCustomDomain(customDomain) : getDefaultBaseURL();
+
+/**
+ * Builds a portal URL using the provided portal slug and optional custom domain
+ * @param {string} portalSlug - The slug identifier for the portal
+ * @param {string} [customDomain] - Optional custom domain for the portal
+ * @returns {string} The complete portal URL
+ * @throws {Error} If portalSlug is not provided or invalid
+ */
+export const buildPortalURL = (portalSlug, customDomain) => {
+ const baseURL = getPortalBaseURL(customDomain);
return `${baseURL}/hc/${portalSlug}`;
};
@@ -8,9 +46,10 @@ export const buildPortalArticleURL = (
portalSlug,
categorySlug,
locale,
- articleSlug
+ articleSlug,
+ customDomain
) => {
- const portalURL = buildPortalURL(portalSlug);
+ const portalURL = buildPortalURL(portalSlug, customDomain);
return `${portalURL}/articles/${articleSlug}`;
};
diff --git a/app/javascript/dashboard/helper/specs/actionCable.spec.js b/app/javascript/dashboard/helper/specs/actionCable.spec.js
new file mode 100644
index 000000000..4ad8a52c6
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/actionCable.spec.js
@@ -0,0 +1,67 @@
+import { describe, it, beforeEach, expect, vi } from 'vitest';
+import ActionCableConnector from '../actionCable';
+
+vi.mock('shared/helpers/mitt', () => ({
+ emitter: {
+ emit: vi.fn(),
+ },
+}));
+
+vi.mock('dashboard/composables/useImpersonation', () => ({
+ useImpersonation: () => ({
+ isImpersonating: { value: false },
+ }),
+}));
+
+global.chatwootConfig = {
+ websocketURL: 'wss://test.chatwoot.com',
+};
+
+describe('ActionCableConnector - Copilot Tests', () => {
+ let store;
+ let actionCable;
+ let mockDispatch;
+
+ beforeEach(() => {
+ vi.clearAllMocks();
+ mockDispatch = vi.fn();
+ store = {
+ $store: {
+ dispatch: mockDispatch,
+ getters: {
+ getCurrentAccountId: 1,
+ },
+ },
+ };
+
+ actionCable = ActionCableConnector.init(store.$store, 'test-token');
+ });
+ describe('copilot event handlers', () => {
+ it('should register the copilot.message.created event handler', () => {
+ expect(Object.keys(actionCable.events)).toContain(
+ 'copilot.message.created'
+ );
+ expect(actionCable.events['copilot.message.created']).toBe(
+ actionCable.onCopilotMessageCreated
+ );
+ });
+
+ it('should handle the copilot.message.created event through the ActionCable system', () => {
+ const copilotData = {
+ id: 2,
+ content: 'This is a copilot message from ActionCable',
+ conversation_id: 456,
+ created_at: '2025-05-27T15:58:04-06:00',
+ account_id: 1,
+ };
+ actionCable.onReceived({
+ event: 'copilot.message.created',
+ data: copilotData,
+ });
+ expect(mockDispatch).toHaveBeenCalledWith(
+ 'copilotMessages/upsert',
+ copilotData
+ );
+ });
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/portalHelper.spec.js b/app/javascript/dashboard/helper/specs/portalHelper.spec.js
index 9c1a47255..db3e41583 100644
--- a/app/javascript/dashboard/helper/specs/portalHelper.spec.js
+++ b/app/javascript/dashboard/helper/specs/portalHelper.spec.js
@@ -25,5 +25,47 @@ describe('PortalHelper', () => {
).toEqual('https://help.chatwoot.com/hc/handbook/articles/article-slug');
window.chatwootConfig = {};
});
+
+ it('returns the correct url with custom domain', () => {
+ window.chatwootConfig = {
+ hostURL: 'https://app.chatwoot.com',
+ helpCenterURL: 'https://help.chatwoot.com',
+ };
+ expect(
+ buildPortalArticleURL(
+ 'handbook',
+ 'culture',
+ 'fr',
+ 'article-slug',
+ 'custom-domain.dev'
+ )
+ ).toEqual('https://custom-domain.dev/hc/handbook/articles/article-slug');
+ });
+
+ it('handles https in custom domain correctly', () => {
+ window.chatwootConfig = {
+ hostURL: 'https://app.chatwoot.com',
+ helpCenterURL: 'https://help.chatwoot.com',
+ };
+ expect(
+ buildPortalArticleURL(
+ 'handbook',
+ 'culture',
+ 'fr',
+ 'article-slug',
+ 'https://custom-domain.dev'
+ )
+ ).toEqual('https://custom-domain.dev/hc/handbook/articles/article-slug');
+ });
+
+ it('uses hostURL when helpCenterURL is not available', () => {
+ window.chatwootConfig = {
+ hostURL: 'https://app.chatwoot.com',
+ helpCenterURL: '',
+ };
+ expect(
+ buildPortalArticleURL('handbook', 'culture', 'fr', 'article-slug')
+ ).toEqual('https://app.chatwoot.com/hc/handbook/articles/article-slug');
+ });
});
});
diff --git a/app/javascript/dashboard/i18n/locale/am/agentBots.json b/app/javascript/dashboard/i18n/locale/am/agentBots.json
index 41b8fcb1b..d3a0bb991 100644
--- a/app/javascript/dashboard/i18n/locale/am/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/am/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Delete",
"TITLE": "Delete bot",
- "SUBMIT": "Delete",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancel",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/auditLogs.json b/app/javascript/dashboard/i18n/locale/am/auditLogs.json
index 8194c667c..f85ad2a3e 100644
--- a/app/javascript/dashboard/i18n/locale/am/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/am/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/automation.json b/app/javascript/dashboard/i18n/locale/am/automation.json
index bb4946416..86ec0b58b 100644
--- a/app/javascript/dashboard/i18n/locale/am/automation.json
+++ b/app/javascript/dashboard/i18n/locale/am/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/components.json b/app/javascript/dashboard/i18n/locale/am/components.json
index c7230b1fc..e44c6e039 100644
--- a/app/javascript/dashboard/i18n/locale/am/components.json
+++ b/app/javascript/dashboard/i18n/locale/am/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/contact.json b/app/javascript/dashboard/i18n/locale/am/contact.json
index f5925eda3..b4d640f7f 100644
--- a/app/javascript/dashboard/i18n/locale/am/contact.json
+++ b/app/javascript/dashboard/i18n/locale/am/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Confirm Deletion",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/am/conversation.json b/app/javascript/dashboard/i18n/locale/am/conversation.json
index 6cfe9d082..c047f17ad 100644
--- a/app/javascript/dashboard/i18n/locale/am/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/am/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/am/general.json b/app/javascript/dashboard/i18n/locale/am/general.json
index 78e97db90..129fb239a 100644
--- a/app/javascript/dashboard/i18n/locale/am/general.json
+++ b/app/javascript/dashboard/i18n/locale/am/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/generalSettings.json b/app/javascript/dashboard/i18n/locale/am/generalSettings.json
index 9ad4e4b57..c0c4d247d 100644
--- a/app/javascript/dashboard/i18n/locale/am/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/am/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "Cancel",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/am/helpCenter.json b/app/javascript/dashboard/i18n/locale/am/helpCenter.json
index 8fa64108b..f437b83d9 100644
--- a/app/javascript/dashboard/i18n/locale/am/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/am/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json
index 20f5ebed3..cc0fe4b33 100644
--- a/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/integrations.json b/app/javascript/dashboard/i18n/locale/am/integrations.json
index e2ee60103..43de9b65d 100644
--- a/app/javascript/dashboard/i18n/locale/am/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/am/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Cancel"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/am/macros.json b/app/javascript/dashboard/i18n/locale/am/macros.json
index 95e02fe94..d22744190 100644
--- a/app/javascript/dashboard/i18n/locale/am/macros.json
+++ b/app/javascript/dashboard/i18n/locale/am/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/report.json b/app/javascript/dashboard/i18n/locale/am/report.json
index 294ca2e7b..7c42fdfba 100644
--- a/app/javascript/dashboard/i18n/locale/am/report.json
+++ b/app/javascript/dashboard/i18n/locale/am/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/am/search.json b/app/javascript/dashboard/i18n/locale/am/search.json
index 3cb566813..e8510ab97 100644
--- a/app/javascript/dashboard/i18n/locale/am/search.json
+++ b/app/javascript/dashboard/i18n/locale/am/search.json
@@ -4,12 +4,14 @@
"ALL": "All",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/am/settings.json b/app/javascript/dashboard/i18n/locale/am/settings.json
index 7108c1610..219041d75 100644
--- a/app/javascript/dashboard/i18n/locale/am/settings.json
+++ b/app/javascript/dashboard/i18n/locale/am/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ar/agentBots.json b/app/javascript/dashboard/i18n/locale/ar/agentBots.json
index f938d3d0d..4fec1e414 100644
--- a/app/javascript/dashboard/i18n/locale/ar/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ar/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "الروبوتات",
"LOADING_EDITOR": "جار جلب المحرر...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "اسم الروبوت",
- "PLACEHOLDER": "قم بتسمية الروبوت الخاص بك.",
- "ERROR": "اسم الروبوت مطلوب."
- },
- "DESCRIPTION": {
- "LABEL": "وصف الروبوت",
- "PLACEHOLDER": "ماذا يفعل هذا الروبوت؟"
- },
- "BOT_CONFIG": {
- "ERROR": "يرجى إدخال تكوين نبوت CSML الخاص بك أعلاه.",
- "API_ERROR": "تكوين CSML الخاص بك غير صالح. يرجى إصلاحه والمحاولة مرة أخرى."
- },
- "SUBMIT": "التحقق والحفظ"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "النظام",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "اختر الروبوت",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "اختر الروبوت"
},
"ADD": {
- "TITLE": "تكوين روبوت جديد",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "إلغاء",
"API": {
"SUCCESS_MESSAGE": "تمت إضافة الروبوت بنجاح.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "لم يتم العثور على أي روبوتات. يمكنك إنشاء الروبوت بالنقر على زر 'تكوين روبوت جديد' ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "جار جلب الروبوتات...",
- "TYPE": "نوع الروبوت"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "رابط Webhook"
+ }
},
"DELETE": {
"BUTTON_TEXT": "حذف",
"TITLE": "حذف الروبوت",
- "SUBMIT": "حذف",
- "CANCEL_BUTTON_TEXT": "إلغاء",
- "DESCRIPTION": "هل أنت متأكد أنك تريد حذف هذا الروبوت؟ هذا الإجراء لا يمكن التراجع عنه.",
+ "CONFIRM": {
+ "TITLE": "تأكيد الحذف",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "نعم، احذف",
+ "NO": "لا، احتفظ"
+ },
"API": {
"SUCCESS_MESSAGE": "تم حذف الروبوت بنجاح.",
"ERROR_MESSAGE": "تعذر حذف الروبوت. يرجى المحاولة مرة أخرى."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "تعديل",
- "LOADING": "جار جلب الروبوتات...",
"TITLE": "تعديل الروبوت",
- "CANCEL_BUTTON_TEXT": "إلغاء",
"API": {
"SUCCESS_MESSAGE": "تم تحديث الروبوت بنجاح.",
"ERROR_MESSAGE": "تعذر تحديث الروبوت. يرجى المحاولة مرة أخرى."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "رمز المصادقة",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "اسم الروبوت",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "اسم الروبوت مطلوب"
+ },
+ "DESCRIPTION": {
+ "LABEL": "الوصف",
+ "PLACEHOLDER": "ماذا يفعل هذا الروبوت؟"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "رابط Webhook",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "اسم الروبوت مطلوب",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "إلغاء",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "روبوت الـWebhook",
- "CSML": "بوت CSML"
+ "WEBHOOK": "روبوت الـWebhook"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/auditLogs.json b/app/javascript/dashboard/i18n/locale/ar/auditLogs.json
index e4087d9c2..aacd85155 100644
--- a/app/javascript/dashboard/i18n/locale/ar/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ar/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} قام بتحديث إعدادات الحساب (##{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/automation.json b/app/javascript/dashboard/i18n/locale/ar/automation.json
index 66a3e5c79..a7a1ce25f 100644
--- a/app/javascript/dashboard/i18n/locale/ar/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ar/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "شرط واحد على الأقل مطلوب",
"ATLEAST_ONE_ACTION_REQUIRED": "إجراء واحد على الأقل مطلوب"
},
- "NONE_OPTION": "لا شيء"
+ "NONE_OPTION": "لا شيء",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "تم إنشاء المحادثة",
+ "CONVERSATION_UPDATED": "تم تحديث المحادثة",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "كتم المحادثة",
+ "SNOOZE_CONVERSATION": "تأجيل المحادثة",
+ "RESOLVE_CONVERSATION": "إعادة فتح المحادثة",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "تغيير الأولوية",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "البريد الإلكتروني",
+ "INBOX": "صندوق الوارد",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "رقم الهاتف",
+ "STATUS": "الحالة",
+ "BROWSER_LANGUAGE": "لغة المتصفح",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "الدولة",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "المكلَّف",
+ "TEAM_NAME": "الفريق",
+ "PRIORITY": "الأولوية"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/components.json b/app/javascript/dashboard/i18n/locale/ar/components.json
index 6a4b2f4cb..e06f11d82 100644
--- a/app/javascript/dashboard/i18n/locale/ar/components.json
+++ b/app/javascript/dashboard/i18n/locale/ar/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "اعرف المزيد",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/contact.json b/app/javascript/dashboard/i18n/locale/ar/contact.json
index 10b7d40a5..bfea55276 100644
--- a/app/javascript/dashboard/i18n/locale/ar/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ar/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "جهات الاتصال",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "رسالة",
"SEND_MESSAGE": "إرسال الرسالة",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "حذف جهة الاتصال",
"DELETE_DIALOG": {
"TITLE": "تأكيد الحذف",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "نعم، احذف",
"API": {
"SUCCESS_MESSAGE": "تم حذف جهة الاتصال بنجاح",
@@ -544,6 +549,9 @@
"WROTE": "كتب",
"YOU": "أنت",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "لا توجد جهات اتصال تطابق بحثك 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ar/conversation.json b/app/javascript/dashboard/i18n/locale/ar/conversation.json
index fb1119b0c..fe176f4d9 100644
--- a/app/javascript/dashboard/i18n/locale/ar/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ar/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "جاري جلب المحادثات",
"CANNOT_REPLY": "لا يمكنك الرد بسبب",
"24_HOURS_WINDOW": "قيد نافذة الـ 24 ساعة",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "لم يتم تعيين هذه المحادثة لك. هل ترغب في تعيين هذه المحادثة لنفسك؟",
"ASSIGN_TO_ME": "إسناد لي",
"TWILIO_WHATSAPP_CAN_REPLY": "يمكنك فقط الرد على هذه المحادثة باستخدام رسالة قالب بسبب",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "قيد نافذة الـ 24 ساعة",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "أنت ترد على:",
"REMOVE_SELECTION": "إزالة التحديد",
"DOWNLOAD": "تحميل",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "حل المحادثة",
"REOPEN_ACTION": "إعادة فتح",
"OPEN_ACTION": "فتح",
+ "MORE_ACTIONS": "More actions",
"OPEN": "المزيد",
"CLOSE": "أغلق",
"DETAILS": "التفاصيل",
@@ -115,6 +118,11 @@
"FAILED": "تعذر تغيير الأولوية، الرجاء المحاولة مرة أخرى."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "حذف"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "تحديد كمعلق",
"RESOLVED": "تحديد كمحلولة",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "إضافة وسم",
"AGENTS_LOADING": "جاري جلب الوكلاء...",
"ASSIGN_TEAM": "تعيين فريق",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "معرف المحادثة {conversationId} تم تعيينه لـ \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "تم تعيين الوسم بنجاح",
"ASSIGN_LABEL_FAILED": "فشل تعيين الوسم",
"CHANGE_TEAM": "تم تغيير فريق المحادثة",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "حجم الملف يتجاوز حد الاقصى وهو {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE}",
"MESSAGE_ERROR": "غير قادر على إرسال هذه الرسالة، الرجاء المحاولة مرة أخرى لاحقاً",
"SENT_BY": "أرسلت بواسطة:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "إجراءات المحادثة",
"CONVERSATION_LABELS": "وسوم المحادثة",
"CONVERSATION_INFO": "معلومات المحادثة",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "سمات جهة الاتصال",
"PREVIOUS_CONVERSATION": "المحادثات السابقة",
"MACROS": "ماكروس",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ar/general.json b/app/javascript/dashboard/i18n/locale/ar/general.json
index 7adff9c7b..696b28c7c 100644
--- a/app/javascript/dashboard/i18n/locale/ar/general.json
+++ b/app/javascript/dashboard/i18n/locale/ar/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "بحث",
"EMPTY_STATE": "لم يتم العثور على النتائج"
- }
+ },
+ "CLOSE": "أغلق"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/generalSettings.json b/app/javascript/dashboard/i18n/locale/ar/generalSettings.json
index d325943e2..b0cb392c5 100644
--- a/app/javascript/dashboard/i18n/locale/ar/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ar/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "إعدادات الحساب",
"SUBMIT": "تحديث الإعدادات",
"BACK": "العودة",
@@ -8,6 +14,26 @@
"ERROR": "تعذر تحديث الإعدادات، الرجاء المحاولة مرة أخرى!",
"SUCCESS": "تم تحديث إعدادات الحساب بنجاح"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "حذف",
+ "DISMISS": "إلغاء",
+ "PLACE_HOLDER": "الرجاء كتابة {accountName} للتأكيد"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "الرجاء إصلاح الأخطاء في النموذج",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "معرف الحساب",
"NOTE": "هذا المعرف مطلوب إذا كنت بصدد بناء تكامل على API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "التفضيلات",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "اسم الحساب",
"PLACEHOLDER": "اسم الحساب الخاص بك",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "عنوان البريد الإلكتروني الخاص باستقبال رسائل الدعم الفني",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "عدد الأيام للتذكرة التي يجب أن يتم حلها تلقائياً إذا لم يكن هناك أي نشاط",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "الرجاء إدخال مدة صالحة للحل تلقائي (حد أدنى 1 يوم والحد الأقصى 999 يوما)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "تحديث",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "الاستمرار في المحادثة عبر رسائل البريد الإلكتروني مفعّل لحسابك.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "يتوفر تحديث {latestChatwootVersion} لـ Chatwoot. الرجاء التحديث.",
"LEARN_MORE": "اعرف المزيد",
"PAYMENT_PENDING": "الدفعة الخاصة بك معلقة. الرجاء تحديث معلومات الدفع الخاصة بك للاستمرار في استخدام Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "لقد تجاوز حسابك حدود الاستخدام، يرجى ترقية خطتك للاستمرار في استخدام Chatwoot",
"OPEN_BILLING": "فتح الفواتير"
},
diff --git a/app/javascript/dashboard/i18n/locale/ar/helpCenter.json b/app/javascript/dashboard/i18n/locale/ar/helpCenter.json
index d5ec7fa2a..019ba02b4 100644
--- a/app/javascript/dashboard/i18n/locale/ar/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ar/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json
index e9a35ea1e..b090f348b 100644
--- a/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "اسم صندوق الوارد لقناة التواصل",
"ADD_NAME": "قم بتعيين اسم لصندوق الوارد الخاص بقناتك الجديدة",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "اختر قيمة"
+ "PICK_A_VALUE": "اختر قيمة",
+ "CREATE_INBOX": "إنشاء قناة تواصل"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "لإضافة حساب تويتر الخاص بك كقناة تواصل، تحتاج إلى مصادقة حسابك على تويتر بك بالنقر على زر \"تسجيل الدخول باستخدام تويتر\" ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "نموذج ما قبل الدردشة",
"BUSINESS_HOURS": "ساعات العمل",
"WIDGET_BUILDER": "منشئ اللايف شات",
- "BOT_CONFIGURATION": "اعدادات البوت"
+ "BOT_CONFIGURATION": "اعدادات البوت",
+ "CSAT": "تقييم رضاء العملاء"
},
"SETTINGS": "الإعدادات",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "تفعيل صندوق جمع البريد الإلكتروني",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "تمكين أو تعطيل مربع جمع البريد الإلكتروني في محادثة جديدة",
"AUTO_ASSIGNMENT": "تفعيل الإسناد التلقائي",
- "ENABLE_CSAT": "تمكين تقييم خدمة العملاء",
"SENDER_NAME_SECTION": "تمكين اسم الوكيل في البريد الإلكتروني",
- "ENABLE_CSAT_SUB_TEXT": "تمكين/تعطيل تقييم خدمة العملاء بعد إنتهاء المحادثة",
"SENDER_NAME_SECTION_TEXT": "تمكين/تعطيل إظهار اسم الوكيل في البريد الإلكتروني، إذا تم تعطيله فسيظهر اسم المنشأة",
"ENABLE_CONTINUITY_VIA_EMAIL": "تمكين استمرارية المحادثة عبر البريد الإلكتروني",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "المحادثات ستستمر عبر البريد الإلكتروني إذا كان عنوان البريد الإلكتروني لجهة الاتصال متاحاً.",
@@ -568,6 +577,32 @@
"LABEL": "يجب على الزوار تقديم اسمهم وعنوان بريدهم الإلكتروني قبل بدء المحادثة"
}
},
+ "CSAT": {
+ "TITLE": "تمكين تقييم خدمة العملاء",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "رسالة",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "يحتوي",
+ "DOES_NOT_CONTAINS": "لا يحتوي"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "قم بتعيين توافرك",
"SUBTITLE": "تعيين توافرك على أداة الدردشة المباشرة الخاصة بك",
@@ -753,7 +788,8 @@
"EMAIL": "البريد الإلكتروني",
"TELEGRAM": "تيليجرام",
"LINE": "Line",
- "API": "قناة API"
+ "API": "قناة API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/integrations.json b/app/javascript/dashboard/i18n/locale/ar/integrations.json
index 82de7b363..ccb74cd98 100644
--- a/app/javascript/dashboard/i18n/locale/ar/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ar/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "تم تحديث الرسالة",
"WEBWIDGET_TRIGGERED": "أداة الدردشة المباشرة مفتوحة من قبل المستخدم",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "تم إلغاء ربط المشكلة بنجاح",
"ERROR": "حدث خطأ أثناء إلغاء ربط المشكلة، الرجاء المحاولة مرة أخرى"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "نعم، احذف",
"CANCEL": "إلغاء"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "قائد",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "إرسال الرسالة...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "أنت",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "أنت",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "أكتب رسالتك...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "تحديث",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "الخصائص",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "الاسم",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "الوصف",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "الخصائص",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/ar/macros.json b/app/javascript/dashboard/i18n/locale/ar/macros.json
index 134b9cb00..e40cc21ff 100644
--- a/app/javascript/dashboard/i18n/locale/ar/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ar/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "معلمات الإجراء مطلوبة",
"ATLEAST_ONE_CONDITION_REQUIRED": "شرط واحد على الأقل مطلوب",
"ATLEAST_ONE_ACTION_REQUIRED": "إجراء واحد على الأقل مطلوب"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "كتم المحادثة",
+ "SNOOZE_CONVERSATION": "تأجيل المحادثة",
+ "RESOLVE_CONVERSATION": "إعادة فتح المحادثة",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "تغيير الأولوية",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/report.json b/app/javascript/dashboard/i18n/locale/ar/report.json
index 67d5f3366..f773dff80 100644
--- a/app/javascript/dashboard/i18n/locale/ar/report.json
+++ b/app/javascript/dashboard/i18n/locale/ar/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "نظرة عامة على التسميات",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "تحميل بيانات الرسم البياني...",
"NO_ENOUGH_DATA": "لم يتم جمع بيانات بقدر كافي لإنشاء التقرير، الرجاء المحاولة مرة أخرى لاحقاً.",
"DOWNLOAD_LABEL_REPORTS": "تحميل تقارير التسمية",
@@ -559,6 +560,7 @@
"INBOX": "صندوق الوارد",
"AGENT": "وكيل الدعم",
"TEAM": "الفريق",
+ "LABEL": "الوسم",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/ar/search.json b/app/javascript/dashboard/i18n/locale/ar/search.json
index fd4355f4b..c0137a9e2 100644
--- a/app/javascript/dashboard/i18n/locale/ar/search.json
+++ b/app/javascript/dashboard/i18n/locale/ar/search.json
@@ -4,12 +4,14 @@
"ALL": "الكل",
"CONTACTS": "جهات الاتصال",
"CONVERSATIONS": "المحادثات",
- "MESSAGES": "الرسائل"
+ "MESSAGES": "الرسائل",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "جهات الاتصال",
"CONVERSATIONS": "المحادثات",
- "MESSAGES": "الرسائل"
+ "MESSAGES": "الرسائل",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/ar/settings.json b/app/javascript/dashboard/i18n/locale/ar/settings.json
index 2713dce3a..12c0a003d 100644
--- a/app/javascript/dashboard/i18n/locale/ar/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ar/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "رمز المصادقة",
"NOTE": "يمكن استخدام هذا رمز المصادقة إذا كنت تبني تطبيقات API للتكامل مع Chatwoot",
- "COPY": "نسخ"
+ "COPY": "نسخ",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "غير متصل"
},
"SET_AVAILABILITY_SUCCESS": "تم تعيين التوافر بنجاح",
- "SET_AVAILABILITY_ERROR": "تعذر تعيين التوافر، الرجاء المحاولة مرة أخرى"
+ "SET_AVAILABILITY_ERROR": "تعذر تعيين التوافر، الرجاء المحاولة مرة أخرى",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "عنوان البريد الإلكتروني الخاص بك",
@@ -280,6 +286,7 @@
"REPORTS": "التقارير",
"SETTINGS": "الإعدادات",
"CONTACTS": "جهات الاتصال",
+ "ACTIVE": "مفعل",
"CAPTAIN": "قائد",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "اسم المنشأة",
"PLACEHOLDER": "مؤسسة Wayne"
},
- "SUBMIT": "إرسال"
+ "SUBMIT": "إرسال",
+ "CANCEL": "إلغاء"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/az/agentBots.json b/app/javascript/dashboard/i18n/locale/az/agentBots.json
index 41b8fcb1b..d3a0bb991 100644
--- a/app/javascript/dashboard/i18n/locale/az/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/az/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Delete",
"TITLE": "Delete bot",
- "SUBMIT": "Delete",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancel",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/az/auditLogs.json b/app/javascript/dashboard/i18n/locale/az/auditLogs.json
index 8194c667c..f85ad2a3e 100644
--- a/app/javascript/dashboard/i18n/locale/az/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/az/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/az/automation.json b/app/javascript/dashboard/i18n/locale/az/automation.json
index bb4946416..86ec0b58b 100644
--- a/app/javascript/dashboard/i18n/locale/az/automation.json
+++ b/app/javascript/dashboard/i18n/locale/az/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/az/components.json b/app/javascript/dashboard/i18n/locale/az/components.json
index c7230b1fc..e44c6e039 100644
--- a/app/javascript/dashboard/i18n/locale/az/components.json
+++ b/app/javascript/dashboard/i18n/locale/az/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/az/contact.json b/app/javascript/dashboard/i18n/locale/az/contact.json
index f5925eda3..b4d640f7f 100644
--- a/app/javascript/dashboard/i18n/locale/az/contact.json
+++ b/app/javascript/dashboard/i18n/locale/az/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Confirm Deletion",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/az/conversation.json b/app/javascript/dashboard/i18n/locale/az/conversation.json
index 6cfe9d082..c047f17ad 100644
--- a/app/javascript/dashboard/i18n/locale/az/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/az/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/az/general.json b/app/javascript/dashboard/i18n/locale/az/general.json
index 78e97db90..129fb239a 100644
--- a/app/javascript/dashboard/i18n/locale/az/general.json
+++ b/app/javascript/dashboard/i18n/locale/az/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/az/generalSettings.json b/app/javascript/dashboard/i18n/locale/az/generalSettings.json
index 9ad4e4b57..c0c4d247d 100644
--- a/app/javascript/dashboard/i18n/locale/az/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/az/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "Cancel",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/az/helpCenter.json b/app/javascript/dashboard/i18n/locale/az/helpCenter.json
index 8fa64108b..f437b83d9 100644
--- a/app/javascript/dashboard/i18n/locale/az/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/az/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json
index 20f5ebed3..cc0fe4b33 100644
--- a/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/az/integrations.json b/app/javascript/dashboard/i18n/locale/az/integrations.json
index e2ee60103..43de9b65d 100644
--- a/app/javascript/dashboard/i18n/locale/az/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/az/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Cancel"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/az/macros.json b/app/javascript/dashboard/i18n/locale/az/macros.json
index 95e02fe94..d22744190 100644
--- a/app/javascript/dashboard/i18n/locale/az/macros.json
+++ b/app/javascript/dashboard/i18n/locale/az/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/az/report.json b/app/javascript/dashboard/i18n/locale/az/report.json
index 294ca2e7b..7c42fdfba 100644
--- a/app/javascript/dashboard/i18n/locale/az/report.json
+++ b/app/javascript/dashboard/i18n/locale/az/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/az/search.json b/app/javascript/dashboard/i18n/locale/az/search.json
index 3cb566813..e8510ab97 100644
--- a/app/javascript/dashboard/i18n/locale/az/search.json
+++ b/app/javascript/dashboard/i18n/locale/az/search.json
@@ -4,12 +4,14 @@
"ALL": "All",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/az/settings.json b/app/javascript/dashboard/i18n/locale/az/settings.json
index 7108c1610..219041d75 100644
--- a/app/javascript/dashboard/i18n/locale/az/settings.json
+++ b/app/javascript/dashboard/i18n/locale/az/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/bg/agentBots.json b/app/javascript/dashboard/i18n/locale/bg/agentBots.json
index 22373b8ee..aeb619327 100644
--- a/app/javascript/dashboard/i18n/locale/bg/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/bg/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Отмени",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Изтрий",
"TITLE": "Delete bot",
- "SUBMIT": "Изтрий",
- "CANCEL_BUTTON_TEXT": "Отмени",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Потвърди изтриването",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Да, изтрий",
+ "NO": "Не, запази"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Редактирай",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Отмени",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Описание",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Отмени",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/auditLogs.json b/app/javascript/dashboard/i18n/locale/bg/auditLogs.json
index b1b35c73b..eb0288402 100644
--- a/app/javascript/dashboard/i18n/locale/bg/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/bg/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/automation.json b/app/javascript/dashboard/i18n/locale/bg/automation.json
index 742d59e86..43401760f 100644
--- a/app/javascript/dashboard/i18n/locale/bg/automation.json
+++ b/app/javascript/dashboard/i18n/locale/bg/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Нито един"
+ "NONE_OPTION": "Нито един",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Заглушаване на разговора",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Входяща кутия",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Статус",
+ "BROWSER_LANGUAGE": "Език на браузъра",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Държава",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/components.json b/app/javascript/dashboard/i18n/locale/bg/components.json
index 2bba5bc01..cb087f380 100644
--- a/app/javascript/dashboard/i18n/locale/bg/components.json
+++ b/app/javascript/dashboard/i18n/locale/bg/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/contact.json b/app/javascript/dashboard/i18n/locale/bg/contact.json
index 12d30f114..cf08ef7e7 100644
--- a/app/javascript/dashboard/i18n/locale/bg/contact.json
+++ b/app/javascript/dashboard/i18n/locale/bg/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Контакти",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Съобщение",
"SEND_MESSAGE": "Изпрати съобщение",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Изтриване на контакта",
"DELETE_DIALOG": {
"TITLE": "Потвърди изтриването",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Да, изтрий",
"API": {
"SUCCESS_MESSAGE": "Контакта е изтрит успешно",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Няма контакти отговарящи на търсенети ви 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/bg/conversation.json b/app/javascript/dashboard/i18n/locale/bg/conversation.json
index 52acd2fcf..e19af9bd2 100644
--- a/app/javascript/dashboard/i18n/locale/bg/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/bg/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Отворен",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Изтрий"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Етикети на разговора",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Предишни разговори",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/bg/general.json b/app/javascript/dashboard/i18n/locale/bg/general.json
index 4c2c5bfa2..49598a20a 100644
--- a/app/javascript/dashboard/i18n/locale/bg/general.json
+++ b/app/javascript/dashboard/i18n/locale/bg/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Търсене",
"EMPTY_STATE": "Няма намерени резултати"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/generalSettings.json b/app/javascript/dashboard/i18n/locale/bg/generalSettings.json
index ec080d707..62e7c15d1 100644
--- a/app/javascript/dashboard/i18n/locale/bg/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/bg/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Изтрий",
+ "DISMISS": "Отмени",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/bg/helpCenter.json b/app/javascript/dashboard/i18n/locale/bg/helpCenter.json
index 79a91eaaf..1e4fd3244 100644
--- a/app/javascript/dashboard/i18n/locale/bg/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/bg/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json
index d65848dfd..224bb087f 100644
--- a/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Съобщение",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "съдържа",
+ "DOES_NOT_CONTAINS": "не съдържа"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Имейл",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/integrations.json b/app/javascript/dashboard/i18n/locale/bg/integrations.json
index 6e73da119..f5392e1fb 100644
--- a/app/javascript/dashboard/i18n/locale/bg/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/bg/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Отмени"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Изпрати съобщение...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Напишете вашето съобщение...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Име",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Описание",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/bg/macros.json b/app/javascript/dashboard/i18n/locale/bg/macros.json
index 47cce854a..1822680dd 100644
--- a/app/javascript/dashboard/i18n/locale/bg/macros.json
+++ b/app/javascript/dashboard/i18n/locale/bg/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Заглушаване на разговора",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/report.json b/app/javascript/dashboard/i18n/locale/bg/report.json
index 027a44e78..1b877b0a1 100644
--- a/app/javascript/dashboard/i18n/locale/bg/report.json
+++ b/app/javascript/dashboard/i18n/locale/bg/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Входяща кутия",
"AGENT": "Агент",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/bg/search.json b/app/javascript/dashboard/i18n/locale/bg/search.json
index b74e66b13..a8fbc9775 100644
--- a/app/javascript/dashboard/i18n/locale/bg/search.json
+++ b/app/javascript/dashboard/i18n/locale/bg/search.json
@@ -4,12 +4,14 @@
"ALL": "Всички",
"CONTACTS": "Контакти",
"CONVERSATIONS": "Разговори",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Контакти",
"CONVERSATIONS": "Разговори",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/bg/settings.json b/app/javascript/dashboard/i18n/locale/bg/settings.json
index f01a20248..e0efe78d1 100644
--- a/app/javascript/dashboard/i18n/locale/bg/settings.json
+++ b/app/javascript/dashboard/i18n/locale/bg/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Контакти",
+ "ACTIVE": "Активен",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Име на фирма",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Изпращане"
+ "SUBMIT": "Изпращане",
+ "CANCEL": "Отмени"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ca/agentBots.json b/app/javascript/dashboard/i18n/locale/ca/agentBots.json
index 190dce296..a7d3e02df 100644
--- a/app/javascript/dashboard/i18n/locale/ca/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ca/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "S'està carregant l'editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Nom del bot",
- "PLACEHOLDER": "Anomena el teu bot.",
- "ERROR": "El nom del bot és obligatori."
- },
- "DESCRIPTION": {
- "LABEL": "Descripció del bot",
- "PLACEHOLDER": "Què fa aquest bot?"
- },
- "BOT_CONFIG": {
- "ERROR": "Introdueix la configuració del bot CSML més amunt.",
- "API_ERROR": "La vostra configuració CSML no és vàlida. Arregla-ho i torna-ho a provar."
- },
- "SUBMIT": "Valida i desa"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "Sistema",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Selecciona un bot d'agent",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Selecciona el bot"
},
"ADD": {
- "TITLE": "Configura el nou bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancel·la",
"API": {
"SUCCESS_MESSAGE": "Bot afegit correctament.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No s'han trobat bots. Pots crear un bot fent clic al botó \"Configura un bot nou\" ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "S'estan obtenint bots...",
- "TYPE": "Tipus de bot"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "URL del webhook"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Esborrar",
"TITLE": "Suprimeix el bot",
- "SUBMIT": "Esborrar",
- "CANCEL_BUTTON_TEXT": "Cancel·la",
- "DESCRIPTION": "Estàs segur que vols suprimir aquest bot? Aquesta acció és irreversible.",
+ "CONFIRM": {
+ "TITLE": "Confirma l'esborrat",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Si, esborra",
+ "NO": "No, segueix"
+ },
"API": {
"SUCCESS_MESSAGE": "S'ha esborrat el bot correctament.",
"ERROR_MESSAGE": "No s'ha pogut eliminar el bot. Torneu-ho a provar més endavant."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edita",
- "LOADING": "S'estan obtenint bots...",
"TITLE": "Edita el bot",
- "CANCEL_BUTTON_TEXT": "Cancel·la",
"API": {
"SUCCESS_MESSAGE": "Bot actualitzat correctament.",
"ERROR_MESSAGE": "No s'ha pogut actualitzar el bot. Torneu-ho a provar."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Token d'accés",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Nom del bot",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "El nom del bot és obligatori"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripció",
+ "PLACEHOLDER": "Què fa aquest bot?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "URL del webhook",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "El nom del bot és obligatori",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancel·la",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/auditLogs.json b/app/javascript/dashboard/i18n/locale/ca/auditLogs.json
index 393f7409f..17d4d02ac 100644
--- a/app/javascript/dashboard/i18n/locale/ca/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ca/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/automation.json b/app/javascript/dashboard/i18n/locale/ca/automation.json
index 68ca762d7..83a1f1bf9 100644
--- a/app/javascript/dashboard/i18n/locale/ca/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ca/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Ningú"
+ "NONE_OPTION": "Ningú",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversa Creada",
+ "CONVERSATION_UPDATED": "Conversa Actualitzada",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Silencia la conversa",
+ "SNOOZE_CONVERSATION": "Posposa la conversa",
+ "RESOLVE_CONVERSATION": "Resol la conversa",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Canvia la prioritat",
+ "ADD_SLA": "Afegeix SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Correu electrònic",
+ "INBOX": "Safata d'entrada",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Número de telèfon",
+ "STATUS": "Estat",
+ "BROWSER_LANGUAGE": "Idioma del navegador",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "País",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Cessionari",
+ "TEAM_NAME": "Equip",
+ "PRIORITY": "Prioritat"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/components.json b/app/javascript/dashboard/i18n/locale/ca/components.json
index b45eb74fb..11623bd86 100644
--- a/app/javascript/dashboard/i18n/locale/ca/components.json
+++ b/app/javascript/dashboard/i18n/locale/ca/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Aprèn més",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/contact.json b/app/javascript/dashboard/i18n/locale/ca/contact.json
index 49a711692..ee6bef2ca 100644
--- a/app/javascript/dashboard/i18n/locale/ca/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ca/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contactes",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Missatge",
"SEND_MESSAGE": "Envia missatge",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Contacte esborrat",
"DELETE_DIALOG": {
"TITLE": "Confirma l'esborrat",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Si, esborra",
"API": {
"SUCCESS_MESSAGE": "Contacte esborrat correctament",
@@ -544,6 +549,9 @@
"WROTE": "va escriure",
"YOU": "Tu",
"SAVE": "Save note",
+ "EXPAND": "Expandeix",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No hi ha cap contacte que coincideixi amb la vostra cerca 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ca/conversation.json b/app/javascript/dashboard/i18n/locale/ca/conversation.json
index de4b5d3d8..088dc2331 100644
--- a/app/javascript/dashboard/i18n/locale/ca/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ca/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "S'estan carregant les converses",
"CANNOT_REPLY": "No pots respondre degut a",
"24_HOURS_WINDOW": "Restricció de finestra de missatges de 24 hores",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Aquesta conversa no està assignada a tu. Vols assignar-te-la?",
"ASSIGN_TO_ME": "Assigna'm",
"TWILIO_WHATSAPP_CAN_REPLY": "Només pots respondre a aquesta conversa mitjançant una plantilla de missatge a causa de",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Restricció de finestra de missatges de 24 hores",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Estas responent a:",
"REMOVE_SELECTION": "Elimina la selecció",
"DOWNLOAD": "Descarrega",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resoldre",
"REOPEN_ACTION": "Tornar a obrir",
"OPEN_ACTION": "Obrir",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Més",
"CLOSE": "Tanca",
"DETAILS": "detalls",
@@ -115,6 +118,11 @@
"FAILED": "No s'ha pogut canviar la prioritat. Si us plau, torna-ho a provar."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Esborrar"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Marca com a pendent",
"RESOLVED": "Marca com a resolt",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assigna etiqueta",
"AGENTS_LOADING": "S'estan carregant els agents...",
"ASSIGN_TEAM": "Assigna un equip",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Id de conversa {conversationId} assignat a \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "L'etiqueta s'ha assignat correctament",
"ASSIGN_LABEL_FAILED": "L'assignació d'etiquetes ha fallat",
"CHANGE_TEAM": "L'equip de conversa ha canviat",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "El fitxer supera el límit de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB fitxers adjunts",
"MESSAGE_ERROR": "No es pot enviar aquest missatge, torna-ho a provar més tard",
"SENT_BY": "Enviat per:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Accions de conversa",
"CONVERSATION_LABELS": "Etiquetes de converses",
"CONVERSATION_INFO": "Informació de la conversa",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Atributs de contacte",
"PREVIOUS_CONVERSATION": "Converses prèvies",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ca/general.json b/app/javascript/dashboard/i18n/locale/ca/general.json
index d0c48ce7e..02e697397 100644
--- a/app/javascript/dashboard/i18n/locale/ca/general.json
+++ b/app/javascript/dashboard/i18n/locale/ca/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Cercar",
"EMPTY_STATE": "No s'ha trobat agents"
- }
+ },
+ "CLOSE": "Tanca"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/generalSettings.json b/app/javascript/dashboard/i18n/locale/ca/generalSettings.json
index f6d290e8c..ac8714d6e 100644
--- a/app/javascript/dashboard/i18n/locale/ca/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ca/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Configuració del compte",
"SUBMIT": "Actualització de la configuració",
"BACK": "Enrere",
@@ -8,6 +14,26 @@
"ERROR": "No s'ha pogut actualitzar la configuració, torna-ho a provar!",
"SUCCESS": "La configuració del compte s'ha actualitzat correctament"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Esborrar",
+ "DISMISS": "Cancel·la",
+ "PLACE_HOLDER": "Escriu {accountName} per confirmar"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Corregiu els errors del formulari",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID del compte",
"NOTE": "Aquest identificador és necessari si esteu creant una integració basada en API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Nom del compte",
"PLACEHOLDER": "El nom del vostre compte",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Correu electrònic d'assistència de la vostra companya",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "El nombre de dies després que un ticket es resolgui automàticament si no hi ha activitat",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Introduïu una durada de resolució automàtica vàlida (mínim 1 dia i màxim 999 dies)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Actualitza",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "La continuïtat de converses amb correus electrònics està habilitada per al vostre compte.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "L'actualització {latestChatwootVersion} per Chatwoot està disponible. Si us plau, actualitza l'instancia.",
"LEARN_MORE": "Aprèn més",
"PAYMENT_PENDING": "El teu pagament està pendent. Actualitzeu la vostra informació de pagament per continuar utilitzant Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "El teu compte ha superat els límits d'ús, actualitza el pla per continuar utilitzant Chatwoot",
"OPEN_BILLING": "Obrir facturació"
},
diff --git a/app/javascript/dashboard/i18n/locale/ca/helpCenter.json b/app/javascript/dashboard/i18n/locale/ca/helpCenter.json
index aa5a54a41..6e25c12f9 100644
--- a/app/javascript/dashboard/i18n/locale/ca/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ca/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "El slug és obligatori"
+ "ERROR": "El slug és obligatori",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json
index 953c0e14f..425b7d463 100644
--- a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Nom de la safata d'entrada",
"ADD_NAME": "Afegeix un nom per a la safata d'entrada",
"PICK_NAME": "Tria un nom per a la teva safata d'entrada",
- "PICK_A_VALUE": "Tria un valor"
+ "PICK_A_VALUE": "Tria un valor",
+ "CREATE_INBOX": "Crear safata d'entrada"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Per afegir el teu perfil de Twitter com a canal, has d'autentificar el vostre perfil de Twitter fent clic a 'Inicieu la sessió amb Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Formulari de xat previ",
"BUSINESS_HOURS": "Horari comercial",
"WIDGET_BUILDER": "Creador del widget",
- "BOT_CONFIGURATION": "Configuracions del bot"
+ "BOT_CONFIGURATION": "Configuracions del bot",
+ "CSAT": "CSAT"
},
"SETTINGS": "Configuracions",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Activa la bústia de recollida de correu electrònic",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Activa o desactiva la casella de recollida de correu electrònic en una conversa nova",
"AUTO_ASSIGNMENT": "Activa l'assignació automàtica",
- "ENABLE_CSAT": "Habilita CSAT",
"SENDER_NAME_SECTION": "Activa el nom de l'agent al correu electrònic",
- "ENABLE_CSAT_SUB_TEXT": "Activa/desactiva l'enquesta CSAT (satisfacció del client) després de resoldre una conversa",
"SENDER_NAME_SECTION_TEXT": "Activa/Desactiva la mostra del nom de l'agent al correu electrònic, si està desactivat, mostrarà el nom de l'empresa",
"ENABLE_CONTINUITY_VIA_EMAIL": "Activa la continuïtat de la conversa per correu electrònic",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Les converses continuaran per correu electrònic si l'adreça electrònica de contacte està disponible.",
@@ -568,6 +577,32 @@
"LABEL": "Els visitants han de proporcionar el seu nom i adreça de correu electrònic abans d'iniciar el xat"
}
},
+ "CSAT": {
+ "TITLE": "Habilita CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Missatge",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "conté",
+ "DOES_NOT_CONTAINS": "no conté"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Estableix la vostra disponibilitat",
"SUBTITLE": "Estableix la teva disponibilitat al widget del xat en directe",
@@ -753,7 +788,8 @@
"EMAIL": "Correu electrònic",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "Canal de l'API"
+ "API": "Canal de l'API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/integrations.json b/app/javascript/dashboard/i18n/locale/ca/integrations.json
index 7505799b6..66be524d4 100644
--- a/app/javascript/dashboard/i18n/locale/ca/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ca/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Missatge actualitzat",
"WEBWIDGET_TRIGGERED": "Widget de xat en directe obert per l'usuari",
"CONTACT_CREATED": "Contacte creat",
- "CONTACT_UPDATED": "Contacte actualitzat"
+ "CONTACT_UPDATED": "Contacte actualitzat",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "S'ha desenllaçat la issue correctament",
"ERROR": "S'ha produït un error en desenllaçar la issue, torna-ho a provar"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Sí, esborra",
"CANCEL": "Cancel·la"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Envia missatge...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Tu",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Tu",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Escriu el missatge...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "Pots canviar o cancel·lar el teu pla en qualsevol moment"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Posa't en contacte amb el vostre administrador per obtenir l'actualització."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Actualitza",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Característiques",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Nom",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Descripció",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Característiques",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/ca/macros.json b/app/javascript/dashboard/i18n/locale/ca/macros.json
index 3830b794c..c17834b51 100644
--- a/app/javascript/dashboard/i18n/locale/ca/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ca/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Silencia la conversa",
+ "SNOOZE_CONVERSATION": "Posposa la conversa",
+ "RESOLVE_CONVERSATION": "Resol la conversa",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Canvia la prioritat",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/report.json b/app/javascript/dashboard/i18n/locale/ca/report.json
index eca72aa59..de1ce143b 100644
--- a/app/javascript/dashboard/i18n/locale/ca/report.json
+++ b/app/javascript/dashboard/i18n/locale/ca/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Visió general de les etiquetes",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "S'estan carregant dades del gràfic...",
"NO_ENOUGH_DATA": "No hem rebut suficients punts de dades per generar l'informe. Torneu-ho a provar més endavant.",
"DOWNLOAD_LABEL_REPORTS": "Descarregar Informes d'etiquetes",
@@ -559,6 +560,7 @@
"INBOX": "Safata d'entrada",
"AGENT": "Agent",
"TEAM": "Equip",
+ "LABEL": "Etiqueta",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/ca/search.json b/app/javascript/dashboard/i18n/locale/ca/search.json
index 6cdace7cc..599d13a78 100644
--- a/app/javascript/dashboard/i18n/locale/ca/search.json
+++ b/app/javascript/dashboard/i18n/locale/ca/search.json
@@ -4,12 +4,14 @@
"ALL": "Totes",
"CONTACTS": "Contactes",
"CONVERSATIONS": "Converses",
- "MESSAGES": "Missatges"
+ "MESSAGES": "Missatges",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contactes",
"CONVERSATIONS": "Converses",
- "MESSAGES": "Missatges"
+ "MESSAGES": "Missatges",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/ca/settings.json b/app/javascript/dashboard/i18n/locale/ca/settings.json
index 9dc944f43..1bca3d869 100644
--- a/app/javascript/dashboard/i18n/locale/ca/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ca/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Token d'accés",
"NOTE": "Aquest token es pot utilitzar si creeu una integració basada en l'API",
- "COPY": "Copia"
+ "COPY": "Copia",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Fora de línia"
},
"SET_AVAILABILITY_SUCCESS": "La disponibilitat s'ha establert correctament",
- "SET_AVAILABILITY_ERROR": "No s'ha pogut establir la disponibilitat, torna-ho a provar"
+ "SET_AVAILABILITY_ERROR": "No s'ha pogut establir la disponibilitat, torna-ho a provar",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "La teva adreça de correu electrònic",
@@ -280,6 +286,7 @@
"REPORTS": "Informes",
"SETTINGS": "Configuracions",
"CONTACTS": "Contactes",
+ "ACTIVE": "Actiu",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Nom de la companyia",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Envia"
+ "SUBMIT": "Envia",
+ "CANCEL": "Cancel·la"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/cs/agentBots.json b/app/javascript/dashboard/i18n/locale/cs/agentBots.json
index f13cc5589..18ec3788b 100644
--- a/app/javascript/dashboard/i18n/locale/cs/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/cs/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Zrušit",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "URL webového háčku"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Vymazat",
"TITLE": "Delete bot",
- "SUBMIT": "Vymazat",
- "CANCEL_BUTTON_TEXT": "Zrušit",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Potvrdit odstranění",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Ano, odstranit",
+ "NO": "Ne, zachovat"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Upravit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Zrušit",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Přístupový token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "URL webového háčku",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Zrušit",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/auditLogs.json b/app/javascript/dashboard/i18n/locale/cs/auditLogs.json
index d2d38b094..1620dab00 100644
--- a/app/javascript/dashboard/i18n/locale/cs/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/cs/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/automation.json b/app/javascript/dashboard/i18n/locale/cs/automation.json
index c93a76183..2d72b2ca6 100644
--- a/app/javascript/dashboard/i18n/locale/cs/automation.json
+++ b/app/javascript/dashboard/i18n/locale/cs/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Nic"
+ "NONE_OPTION": "Nic",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Zpráva vytvořena",
+ "CONVERSATION_OPENED": "Konverzace otevřena"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Přiřadit agentovi",
+ "ASSIGN_TEAM": "Přiřadit tým",
+ "ADD_LABEL": "Přidat štítek",
+ "REMOVE_LABEL": "Odebrat štítek",
+ "SEND_EMAIL_TO_TEAM": "Poslat e-mail týmu",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Ztlumit konverzaci",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Odeslat přílohu",
+ "SEND_MESSAGE": "Odeslat zprávu",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Typ zprávy",
+ "MESSAGE_CONTAINS": "Zpráva obsahuje",
+ "EMAIL": "E-mailová adresa",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Jazyk konverzace",
+ "PHONE_NUMBER": "Telefonní číslo",
+ "STATUS": "Stav",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Předmět e-mailu",
+ "COUNTRY_NAME": "Země",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/components.json b/app/javascript/dashboard/i18n/locale/cs/components.json
index 847cdee59..480c7e626 100644
--- a/app/javascript/dashboard/i18n/locale/cs/components.json
+++ b/app/javascript/dashboard/i18n/locale/cs/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/contact.json b/app/javascript/dashboard/i18n/locale/cs/contact.json
index 24c4fe7e1..c18736ba5 100644
--- a/app/javascript/dashboard/i18n/locale/cs/contact.json
+++ b/app/javascript/dashboard/i18n/locale/cs/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontakty",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Zpráva",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Potvrdit odstranění",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Ano, odstranit",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "Vy",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Vašemu hledání neodpovídají žádné kontakty 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/cs/conversation.json b/app/javascript/dashboard/i18n/locale/cs/conversation.json
index 1771338a8..a158b273f 100644
--- a/app/javascript/dashboard/i18n/locale/cs/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/cs/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Načítání konverzací",
"CANNOT_REPLY": "Nemůžete odpovědět z důvodu",
"24_HOURS_WINDOW": "24 hodinové omezení okna",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Tato konverzace vám není přiřazena. Chcete si přiřadit tuto konverzaci?",
"ASSIGN_TO_ME": "Přiřadit mi",
"TWILIO_WHATSAPP_CAN_REPLY": "Na tuto konverzaci můžete odpovědět pouze pomocí šablony zprávy z důvodu",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hodinové omezení okna",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Odpovídáte uživateli:",
"REMOVE_SELECTION": "Odstranit výběr",
"DOWNLOAD": "Stáhnout",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Vyřešit",
"REOPEN_ACTION": "Znovu otevřít",
"OPEN_ACTION": "Otevřít",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Více",
"CLOSE": "Zavřít",
"DETAILS": "Podrobnosti",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Vymazat"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Označit jako nevyřízené",
"RESOLVED": "Označit jako vyřešené",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Přiřadit štítek",
"AGENTS_LOADING": "Načítání agentů...",
"ASSIGN_TEAM": "Přiřadit tým",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Konverzace id {conversationId} přiřazena \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Štítek byl úspěšně přiřazen",
"ASSIGN_LABEL_FAILED": "Přiřazení štítku se nezdařilo",
"CHANGE_TEAM": "Tým konverzace se změnil",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Nepodařilo se odeslat tuto zprávu, zkuste to prosím později",
"SENT_BY": "Odeslal:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Akce konverzace",
"CONVERSATION_LABELS": "Štítky konverzace",
"CONVERSATION_INFO": "Informace o konverzaci",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Atributy kontaktu",
"PREVIOUS_CONVERSATION": "Předchozí konverzace",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/cs/general.json b/app/javascript/dashboard/i18n/locale/cs/general.json
index a7a2af822..641bacba7 100644
--- a/app/javascript/dashboard/i18n/locale/cs/general.json
+++ b/app/javascript/dashboard/i18n/locale/cs/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Hledat",
"EMPTY_STATE": "Žádné výsledky"
- }
+ },
+ "CLOSE": "Zavřít"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/generalSettings.json b/app/javascript/dashboard/i18n/locale/cs/generalSettings.json
index c7b9bef4d..bd6c45169 100644
--- a/app/javascript/dashboard/i18n/locale/cs/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/cs/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Nastavení účtu",
"SUBMIT": "Aktualizovat nastavení",
"BACK": "Zpět",
@@ -8,6 +14,26 @@
"ERROR": "Nelze aktualizovat nastavení, zkuste to znovu!",
"SUCCESS": "Nastavení účtu bylo úspěšně aktualizováno"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Odstranit účet",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Odstranit účet",
+ "CONFIRM": {
+ "TITLE": "Odstranit účet",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Vymazat",
+ "DISMISS": "Zrušit",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Účet nelze odstranit, zkuste to znovu!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Opravte chyby formuláře",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Název účtu",
"PLACEHOLDER": "Název vašeho účtu",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "E-mail podpory vaší společnosti",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Počet dnů, po kterých by měl být ticket automaticky vyřešen při žádné aktivitě",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Aktualizovat",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "E-mailová konverzace je u vašeho účtu povolena.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Je dostupná aktualizace {latestChatwootVersion} pro Chatwoot. Aktualizujte prosím svou instanci.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/cs/helpCenter.json b/app/javascript/dashboard/i18n/locale/cs/helpCenter.json
index 40bdae375..b776b0e26 100644
--- a/app/javascript/dashboard/i18n/locale/cs/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/cs/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json
index 91525b42b..ac3bdcfdf 100644
--- a/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Název schránky",
"ADD_NAME": "Zadejte název schránky",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Vyberte hodnotu"
+ "PICK_A_VALUE": "Vyberte hodnotu",
+ "CREATE_INBOX": "Vytvořit doručenou poštu"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Pokračovat pomocí Instagramu",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Připojte svůj Instagram profil",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Chcete-li přidat svůj Twitter profil jako kanál, musíte ověřit svůj Twitter profil kliknutím na tlačítko 'Přihlásit se přes Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Formulář před chatem",
"BUSINESS_HOURS": "Pracovní doba",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Nastavení",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Povolit automatické přiřazení",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Zpráva",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Nastavte svou dostupnost",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "E-mailová adresa",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/integrations.json b/app/javascript/dashboard/i18n/locale/cs/integrations.json
index a584ac538..a7ff9afd9 100644
--- a/app/javascript/dashboard/i18n/locale/cs/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/cs/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Zrušit"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Vy",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Vy",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Zde začněte psát...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Aktualizovat",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Funkce",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Název",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Funkce",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/cs/macros.json b/app/javascript/dashboard/i18n/locale/cs/macros.json
index d5c73e64d..9071ccd8f 100644
--- a/app/javascript/dashboard/i18n/locale/cs/macros.json
+++ b/app/javascript/dashboard/i18n/locale/cs/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Přiřadit tým",
+ "ASSIGN_AGENT": "Přiřadit agenta",
+ "ADD_LABEL": "Přidat štítek",
+ "REMOVE_LABEL": "Odebrat štítek",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Ztlumit konverzaci",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Odeslat přílohu",
+ "SEND_MESSAGE": "Odeslat zprávu",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Přidat soukromou poznámku",
+ "SEND_WEBHOOK_EVENT": "Poslat událost webhook"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/report.json b/app/javascript/dashboard/i18n/locale/cs/report.json
index f90136fe4..24a2bcbc7 100644
--- a/app/javascript/dashboard/i18n/locale/cs/report.json
+++ b/app/javascript/dashboard/i18n/locale/cs/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Načítání dat mapy...",
"NO_ENOUGH_DATA": "Pro vytvoření hlášení jsme neobdrželi dostatek dat, zkuste to prosím později.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/cs/search.json b/app/javascript/dashboard/i18n/locale/cs/search.json
index 1e9cebdb4..4da840c17 100644
--- a/app/javascript/dashboard/i18n/locale/cs/search.json
+++ b/app/javascript/dashboard/i18n/locale/cs/search.json
@@ -4,12 +4,14 @@
"ALL": "Vše",
"CONTACTS": "Kontakty",
"CONVERSATIONS": "Konverzace",
- "MESSAGES": "Zprávy"
+ "MESSAGES": "Zprávy",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakty",
"CONVERSATIONS": "Konverzace",
- "MESSAGES": "Zprávy"
+ "MESSAGES": "Zprávy",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/cs/settings.json b/app/javascript/dashboard/i18n/locale/cs/settings.json
index 2cd2fe6f1..b78f94028 100644
--- a/app/javascript/dashboard/i18n/locale/cs/settings.json
+++ b/app/javascript/dashboard/i18n/locale/cs/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Přístupový token",
"NOTE": "Tento token může být použit při vytváření integrace založené na API",
- "COPY": "Kopírovat"
+ "COPY": "Kopírovat",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Vaše e-mailová adresa",
@@ -280,6 +286,7 @@
"REPORTS": "Zprávy",
"SETTINGS": "Nastavení",
"CONTACTS": "Kontakty",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Název společnosti",
"PLACEHOLDER": "Wayne podniky"
},
- "SUBMIT": "Odeslat"
+ "SUBMIT": "Odeslat",
+ "CANCEL": "Zrušit"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/da/agentBots.json b/app/javascript/dashboard/i18n/locale/da/agentBots.json
index 722d368cc..7b44f5897 100644
--- a/app/javascript/dashboard/i18n/locale/da/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/da/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot navn er påkrævet."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "Hvad gør denne bot?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Bekræft og gem"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Annuller",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Slet",
"TITLE": "Delete bot",
- "SUBMIT": "Slet",
- "CANCEL_BUTTON_TEXT": "Annuller",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Bekræft Sletning",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Ja, Slet",
+ "NO": "Nej, Behold"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Rediger",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Annuller",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Adgangs Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot navn er påkrævet"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Hvad gør denne bot?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot navn er påkrævet",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Annuller",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/auditLogs.json b/app/javascript/dashboard/i18n/locale/da/auditLogs.json
index 9c4726527..fdac019c5 100644
--- a/app/javascript/dashboard/i18n/locale/da/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/da/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/automation.json b/app/javascript/dashboard/i18n/locale/da/automation.json
index 3e3b780a7..c5d701963 100644
--- a/app/javascript/dashboard/i18n/locale/da/automation.json
+++ b/app/javascript/dashboard/i18n/locale/da/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Ingen"
+ "NONE_OPTION": "Ingen",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Samtale Oprettet",
+ "CONVERSATION_UPDATED": "Samtale Opdateret",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Gør Samtale Lydløs",
+ "SNOOZE_CONVERSATION": "Udsæt Samtale",
+ "RESOLVE_CONVERSATION": "Løs Samtale",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "E-mail",
+ "INBOX": "Indbakke",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Telefonnummer",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Sprog",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Land",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/components.json b/app/javascript/dashboard/i18n/locale/da/components.json
index 1ce510edc..7905f51e6 100644
--- a/app/javascript/dashboard/i18n/locale/da/components.json
+++ b/app/javascript/dashboard/i18n/locale/da/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Lær mere",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/contact.json b/app/javascript/dashboard/i18n/locale/da/contact.json
index 9d442467c..974bd97c3 100644
--- a/app/javascript/dashboard/i18n/locale/da/contact.json
+++ b/app/javascript/dashboard/i18n/locale/da/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontakter",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Besked",
"SEND_MESSAGE": "Send besked",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Slet kontakt",
"DELETE_DIALOG": {
"TITLE": "Bekræft Sletning",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Ja, Slet",
"API": {
"SUCCESS_MESSAGE": "Kontakten blev slettet",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "Dig",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Ingen kontakter matcher din søgning 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/da/conversation.json b/app/javascript/dashboard/i18n/locale/da/conversation.json
index 82a44db85..34971059f 100644
--- a/app/javascript/dashboard/i18n/locale/da/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/da/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Indlæser Samtaler",
"CANNOT_REPLY": "Du kan ikke svare på grund af",
"24_HOURS_WINDOW": "24 timers beskedvindue begrænsning",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Denne samtale er ikke tildelt dig. Vil du tildele denne samtale til dig selv?",
"ASSIGN_TO_ME": "Tildel til mig",
"TWILIO_WHATSAPP_CAN_REPLY": "Du kan kun svare på denne samtale ved hjælp af en skabelon besked på grund af",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 timers beskedvindue begrænsning",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Du svarer til:",
"REMOVE_SELECTION": "Fjern Markering",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Løs",
"REOPEN_ACTION": "Genåben",
"OPEN_ACTION": "Åbn",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Mere",
"CLOSE": "Luk",
"DETAILS": "detaljer",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Slet"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Markér som afventende",
"RESOLVED": "Marker som løst",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Tildel etiket",
"AGENTS_LOADING": "Indlæser agenter...",
"ASSIGN_TEAM": "Tildel team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Samtale id {conversationId} tildelt \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label tildelt",
"ASSIGN_LABEL_FAILED": "Tildeling af etiket mislykkedes",
"CHANGE_TEAM": "Samtaleholdet er ændret",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Filen overskrider grænsen på {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} for vedhæftede filer",
"MESSAGE_ERROR": "Kunne ikke sende denne besked, prøv igen senere",
"SENT_BY": "Sendt af:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Samtale Handlinger",
"CONVERSATION_LABELS": "Samtale Etiketter",
"CONVERSATION_INFO": "Samtale Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Kontakt Attributter",
"PREVIOUS_CONVERSATION": "Tidligere Samtaler",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/da/general.json b/app/javascript/dashboard/i18n/locale/da/general.json
index 8e95993f4..bed7d78a1 100644
--- a/app/javascript/dashboard/i18n/locale/da/general.json
+++ b/app/javascript/dashboard/i18n/locale/da/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Søg",
"EMPTY_STATE": "Ingen resultater fundet"
- }
+ },
+ "CLOSE": "Luk"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/generalSettings.json b/app/javascript/dashboard/i18n/locale/da/generalSettings.json
index 1b928936e..cd9fd33ad 100644
--- a/app/javascript/dashboard/i18n/locale/da/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/da/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Kontoindstillinger",
"SUBMIT": "Opdater indstillinger",
"BACK": "Tilbage",
@@ -8,6 +14,26 @@
"ERROR": "Kunne ikke opdatere indstillinger, prøv igen!",
"SUCCESS": "Kontoindstillinger blev opdateret"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Slet",
+ "DISMISS": "Annuller",
+ "PLACE_HOLDER": "Skriv venligst {accountName} for at bekræfte"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Ret venligst formularfejl",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Konto SID",
"NOTE": "Dette ID er påkrævet, hvis du bygger en API-baseret integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Kontonavn",
"PLACEHOLDER": "Dit kontonavn",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Din virksomheds support e-mail",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Antal dage efter en ticket skal løses automatisk, hvis der ikke er nogen aktivitet",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 dag og maksimum 999 dage)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Opdater",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Samtale kontinuitet med e-mails er aktiveret for din konto.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "En opdatering {latestChatwootVersion} til Chatwoot er tilgængelig. Opdater venligst din instans.",
"LEARN_MORE": "Lær mere",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/da/helpCenter.json b/app/javascript/dashboard/i18n/locale/da/helpCenter.json
index 7346a3411..ee3c6faf6 100644
--- a/app/javascript/dashboard/i18n/locale/da/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/da/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Snegl",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug er påkrævet"
+ "ERROR": "Slug er påkrævet",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json
index b8f065d2e..7aefb2d97 100644
--- a/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Indbakke Navn",
"ADD_NAME": "Tilføj et navn til din indbakke",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Vælg en værdi"
+ "PICK_A_VALUE": "Vælg en værdi",
+ "CREATE_INBOX": "Opret Indbakke"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "For at tilføje din Twitter-profil som en kanal, skal du godkende din Twitter-profil ved at klikke på 'Log ind med Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Forretningstider",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot konfiguration"
+ "BOT_CONFIGURATION": "Bot konfiguration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Indstillinger",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Aktiver boks til indsamling af e-mail",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Aktiver eller deaktivér opsamlingsboks for e-mail ved ny samtale",
"AUTO_ASSIGNMENT": "Aktiver automatisk tildeling",
- "ENABLE_CSAT": "Aktiver CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Aktiver/deaktivér CSAT(Customer satisfaction) undersøgelse efter at have løst en samtale",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Aktivér konversationskontinuitet via e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Samtaler vil fortsætte via e-mail, hvis kontaktpersonens e-mailadresse er tilgængelig.",
@@ -568,6 +577,32 @@
"LABEL": "Besøgende skal angive deres navn og e-mailadresse, før du starter chatten"
}
},
+ "CSAT": {
+ "TITLE": "Aktiver CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Besked",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "indeholder",
+ "DOES_NOT_CONTAINS": "indeholder ikke"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Indstil din tilgængelighed",
"SUBTITLE": "Indstil din tilgængelighed på din livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "E-mail",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Kanal"
+ "API": "API Kanal",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/integrations.json b/app/javascript/dashboard/i18n/locale/da/integrations.json
index 4f2f030f5..5fd5643e5 100644
--- a/app/javascript/dashboard/i18n/locale/da/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/da/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Besked opdateret",
"WEBWIDGET_TRIGGERED": "Live chat widget åbnet af brugeren",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Annuller"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send besked...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Dig",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Dig",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Skriv din besked...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Opdater",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Funktioner",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Navn",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Funktioner",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/da/macros.json b/app/javascript/dashboard/i18n/locale/da/macros.json
index e5836a3bf..6c826e526 100644
--- a/app/javascript/dashboard/i18n/locale/da/macros.json
+++ b/app/javascript/dashboard/i18n/locale/da/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Gør Samtale Lydløs",
+ "SNOOZE_CONVERSATION": "Udsæt Samtale",
+ "RESOLVE_CONVERSATION": "Løs Samtale",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/report.json b/app/javascript/dashboard/i18n/locale/da/report.json
index 6036ee068..ca4874c85 100644
--- a/app/javascript/dashboard/i18n/locale/da/report.json
+++ b/app/javascript/dashboard/i18n/locale/da/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Oversigt Over Etiketter",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Indlæser diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke modtaget nok datapunkter til at generere rapport. Prøv igen senere.",
"DOWNLOAD_LABEL_REPORTS": "Download etiketrapporter",
@@ -559,6 +560,7 @@
"INBOX": "Indbakke",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Etiketter",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/da/search.json b/app/javascript/dashboard/i18n/locale/da/search.json
index 91fe43db9..4605d432a 100644
--- a/app/javascript/dashboard/i18n/locale/da/search.json
+++ b/app/javascript/dashboard/i18n/locale/da/search.json
@@ -4,12 +4,14 @@
"ALL": "Alle",
"CONTACTS": "Kontakter",
"CONVERSATIONS": "Samtaler",
- "MESSAGES": "Beskeder"
+ "MESSAGES": "Beskeder",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakter",
"CONVERSATIONS": "Samtaler",
- "MESSAGES": "Beskeder"
+ "MESSAGES": "Beskeder",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/da/settings.json b/app/javascript/dashboard/i18n/locale/da/settings.json
index d371c0f66..e1286c6a4 100644
--- a/app/javascript/dashboard/i18n/locale/da/settings.json
+++ b/app/javascript/dashboard/i18n/locale/da/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Adgangs Token",
"NOTE": "Denne token kan bruges, hvis du bygger en API-baseret integration",
- "COPY": "Kopiér"
+ "COPY": "Kopiér",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Din e-mail adresse",
@@ -280,6 +286,7 @@
"REPORTS": "Rapporter",
"SETTINGS": "Indstillinger",
"CONTACTS": "Kontakter",
+ "ACTIVE": "Aktiv",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Virksomhedens Navn",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Send"
+ "SUBMIT": "Send",
+ "CANCEL": "Annuller"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/de/agentBots.json b/app/javascript/dashboard/i18n/locale/de/agentBots.json
index e93c147ca..a5119b531 100644
--- a/app/javascript/dashboard/i18n/locale/de/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/de/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Lade Editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot Name",
- "PLACEHOLDER": "Benenne den Bot.",
- "ERROR": "Bot Name ist erforderlich."
- },
- "DESCRIPTION": {
- "LABEL": "Bot Beschreibung",
- "PLACEHOLDER": "Was macht dieser Bot?"
- },
- "BOT_CONFIG": {
- "ERROR": "Bitte geben Sie Ihre CSML Bot-Konfiguration oben ein.",
- "API_ERROR": "Deine CSML-Konfiguration ist ungültig, bitte korrigiere sie und versuche es erneut."
- },
- "SUBMIT": "Validieren und speichern"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Agenten-Bot auswählen",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Bot auswählen"
},
"ADD": {
- "TITLE": "Neuen Bot konfigurieren",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Stornieren",
"API": {
"SUCCESS_MESSAGE": "Bot erfolgreich hinzugefügt.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Keine Bots gefunden. Du kannst einen Bot erstellen, indem du auf den 'Neuen Bot konfigurieren' Knopf klickst ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Bots werden geladen...",
- "TYPE": "Bot-Typ"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook-URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Löschen",
"TITLE": "Bot löschen",
- "SUBMIT": "Löschen",
- "CANCEL_BUTTON_TEXT": "Stornieren",
- "DESCRIPTION": "Sind Sie sicher, dass Sie diesen Bot löschen wollen? Diese Aktion kann nicht rückgängig gemacht werden.",
+ "CONFIRM": {
+ "TITLE": "Löschung bestätigen",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Ja, löschen",
+ "NO": "Nein, behalten"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot erfolgreich gelöscht.",
"ERROR_MESSAGE": "Der Bot konnte nicht gelöscht werden, bitte versuche es später erneut."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Bearbeiten",
- "LOADING": "Bots werden geladen...",
"TITLE": "Bot bearbeiten",
- "CANCEL_BUTTON_TEXT": "Stornieren",
"API": {
"SUCCESS_MESSAGE": "Bot erfolgreich aktualisiert.",
"ERROR_MESSAGE": "Der Bot konnte nicht aktualisiert werden, bitte versuche es später erneut."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Zugangstoken",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot Name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot Name ist erforderlich"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschreibung",
+ "PLACEHOLDER": "Was macht dieser Bot?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook-URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot Name ist erforderlich",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Stornieren",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook Bot",
- "CSML": "CSML Bot"
+ "WEBHOOK": "Webhook Bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/auditLogs.json b/app/javascript/dashboard/i18n/locale/de/auditLogs.json
index 19dc9e016..6b4c17a47 100644
--- a/app/javascript/dashboard/i18n/locale/de/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/de/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/automation.json b/app/javascript/dashboard/i18n/locale/de/automation.json
index 26dab0238..3d137921e 100644
--- a/app/javascript/dashboard/i18n/locale/de/automation.json
+++ b/app/javascript/dashboard/i18n/locale/de/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "Mindestens eine Bedingung ist erforderlich",
"ATLEAST_ONE_ACTION_REQUIRED": "Mindestens eine Aktion ist erforderlich"
},
- "NONE_OPTION": "Keine"
+ "NONE_OPTION": "Keine",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Konversation erstellt",
+ "CONVERSATION_UPDATED": "Konversation aktualisiert",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Unterhaltung stummschalten",
+ "SNOOZE_CONVERSATION": "Snooze-Konversation",
+ "RESOLVE_CONVERSATION": "Unterhaltung als gelöst kennzeichnen",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Priorität ändern",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "E-Mail",
+ "INBOX": "Posteingang",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Telefonnummer",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browsersprache",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Land",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Zugewiesener",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priorität"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/components.json b/app/javascript/dashboard/i18n/locale/de/components.json
index 3ef5c8fe8..e9497cd02 100644
--- a/app/javascript/dashboard/i18n/locale/de/components.json
+++ b/app/javascript/dashboard/i18n/locale/de/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Mehr erfahren",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/contact.json b/app/javascript/dashboard/i18n/locale/de/contact.json
index 62aaa75f5..ece7d0267 100644
--- a/app/javascript/dashboard/i18n/locale/de/contact.json
+++ b/app/javascript/dashboard/i18n/locale/de/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontakte",
"SEARCH_TITLE": "Kontakte suchen",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Suchen...",
"MESSAGE_BUTTON": "Nachricht",
"SEND_MESSAGE": "Nachricht senden",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Twitter hinzufügen"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Kontakt löschen",
"DELETE_DIALOG": {
"TITLE": "Löschung bestätigen",
- "DESCRIPTION": "Sind Sie sicher, dass Sie den Kontakt {contactName} löschen möchten?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Ja, löschen",
"API": {
"SUCCESS_MESSAGE": "Kontakt erfolgreich gelöscht",
@@ -544,6 +549,9 @@
"WROTE": "schrieb",
"YOU": "Sie",
"SAVE": "Notiz speichern",
+ "EXPAND": "Erweitern",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "Es gibt keine Notizen zu diesem Kontakt. Sie können eine Notiz hinzufügen, indem Sie diese in das obige Feld eingeben."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Füge neue Kontakte hinzu, indem du auf den Button unten klickst",
"BUTTON_LABEL": "Kontakt hinzufügen",
"SEARCH_EMPTY_STATE_TITLE": "Keine Kontakte entsprechen Ihrer Suche 🔍",
- "LIST_EMPTY_STATE_TITLE": "Keine Kontakte verfügbar in dieser Ansicht 📋"
+ "LIST_EMPTY_STATE_TITLE": "Keine Kontakte verfügbar in dieser Ansicht 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/de/conversation.json b/app/javascript/dashboard/i18n/locale/de/conversation.json
index f0d89a0d8..85db52360 100644
--- a/app/javascript/dashboard/i18n/locale/de/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/de/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Gespräche laden",
"CANNOT_REPLY": "Sie können nicht antworten, weil",
"24_HOURS_WINDOW": "24-Stunden-Nachrichtenfenster-Beschränkung",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Diese Konversation ist Ihnen nicht zugeordnet. Möchten Sie dieses Gespräch sich selbst zuordnen?",
"ASSIGN_TO_ME": "Mir zuweisen",
"TWILIO_WHATSAPP_CAN_REPLY": "Sie können auf diese Konversation nur mit einer Nachrichtenvorlage antworten wegen",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24-Stunden-Nachrichtenfenster-Beschränkung",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Sie antworten auf:",
"REMOVE_SELECTION": "Auswahl entfernen",
"DOWNLOAD": "Herunterladen",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Fall schließen",
"REOPEN_ACTION": "Wieder öffnen",
"OPEN_ACTION": "Öffnen",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Mehr",
"CLOSE": "Schließen",
"DETAILS": "Einzelheiten",
@@ -115,6 +118,11 @@
"FAILED": "Priorität konnte nicht geändert werden. Bitte versuchen Sie es erneut."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Löschen"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Als ausstehend markieren",
"RESOLVED": "Als gelöst markieren",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Label zuweisen",
"AGENTS_LOADING": "Agenten werden geladen...",
"ASSIGN_TEAM": "Team zuweisen",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Konversations-ID {conversationId} zugewiesen zu \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label erfolgreich zugewiesen",
"ASSIGN_LABEL_FAILED": "Labelzuweisung fehlgeschlagen",
"CHANGE_TEAM": "Das Konversationsteam hat sich geändert",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Die Datei überschreitet das Anhangslimit von {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
"MESSAGE_ERROR": "Nachricht konnte nicht gesendet werden, bitte versuchen Sie es später erneut",
"SENT_BY": "Gesendet von:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Konversationsaktionen",
"CONVERSATION_LABELS": "Konversationslabels",
"CONVERSATION_INFO": "Konversationsinformationen",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Kontakt-Attribute",
"PREVIOUS_CONVERSATION": "Vorherige Konversationen",
"MACROS": "Makros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/de/general.json b/app/javascript/dashboard/i18n/locale/de/general.json
index 5915545e7..45baddf77 100644
--- a/app/javascript/dashboard/i18n/locale/de/general.json
+++ b/app/javascript/dashboard/i18n/locale/de/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Suchen",
"EMPTY_STATE": "Keine Ergebnisse gefunden"
- }
+ },
+ "CLOSE": "Schließen"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/generalSettings.json b/app/javascript/dashboard/i18n/locale/de/generalSettings.json
index dfdcbc184..2eccd68db 100644
--- a/app/javascript/dashboard/i18n/locale/de/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/de/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Kontoeinstellungen",
"SUBMIT": "Einstellungen aktualisieren",
"BACK": "Zurück",
@@ -8,6 +14,26 @@
"ERROR": "Einstellungen konnten nicht aktualisiert werden, versuchen Sie es erneut!",
"SUCCESS": "Kontoeinstellungen erfolgreich aktualisiert"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Löschen",
+ "DISMISS": "Stornieren",
+ "PLACE_HOLDER": "Bitte {accountName} zur Bestätigung eingeben"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Bitte Formularfehler korrigieren",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "Diese ID ist erforderlich, wenn Sie eine API-basierte Integration erstellen"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Einstellungen",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Kontobezeichnung",
"PLACEHOLDER": "Ihr Kontoname",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Die Support-E-Mail Ihres Unternehmens",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Anzahl der Tage, nach denen ein Ticket automatisch geschlossen wird, wenn keine Aktivität erfolgt",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Bitte geben Sie eine gültige Dauer für die automatische Auflösung ein (mindestens 1Tag und maximal 999Tage)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Aktualisieren",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Konversationskontinuität mit E-Mails ist für Ihr Konto aktiviert.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Ein Update {latestChatwootVersion} für Chatwoot ist verfügbar. Bitte aktualisieren Sie Ihre Instanz.",
"LEARN_MORE": "Mehr erfahren",
"PAYMENT_PENDING": "Ihre Zahlung steht noch aus. Um Chatwoot weiter zu verwenden, aktualisieren Sie Bitte Ihre Zahlungsinformationen",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Ihr Konto hat die Nutzungsbeschränkungen überschritten. Um Chatwoot weiter nutzen zu können aktualisieren Sie bitte Ihren Tarif",
"OPEN_BILLING": "Rechnung öffnen"
},
diff --git a/app/javascript/dashboard/i18n/locale/de/helpCenter.json b/app/javascript/dashboard/i18n/locale/de/helpCenter.json
index cca338e51..1d6a40f70 100644
--- a/app/javascript/dashboard/i18n/locale/de/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/de/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug ist erforderlich"
+ "ERROR": "Slug ist erforderlich",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json
index ba03f8fd0..8a3213095 100644
--- a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Posteingang-Name",
"ADD_NAME": "Namen für diesen Posteingang eingeben",
"PICK_NAME": "Wählen Sie einen Namen für Ihren Posteingang aus",
- "PICK_A_VALUE": "Wählen Sie einen Wert aus"
+ "PICK_A_VALUE": "Wählen Sie einen Wert aus",
+ "CREATE_INBOX": "Posteingang erstellen"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Um Ihr Twitter-Profil als Kanal hinzuzufügen, müssen Sie Ihr Twitter-Profil authentifizieren, indem Sie auf 'Mit Twitter anmelden' klicken.",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre-Chat-Formular",
"BUSINESS_HOURS": "Öffnungszeiten",
"WIDGET_BUILDER": "Widget-Generator",
- "BOT_CONFIGURATION": "Bot-Konfiguration"
+ "BOT_CONFIGURATION": "Bot-Konfiguration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Einstellungen",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "E-Mail-Sammelbox aktivieren",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "E-Mail-Sammelbox für neue Konversation aktivieren oder deaktivieren",
"AUTO_ASSIGNMENT": "Aktivieren Sie die automatische Zuweisung",
- "ENABLE_CSAT": "CSAT aktivieren",
"SENDER_NAME_SECTION": "Aktivieren Sie den Agentennamen in der E-Mail",
- "ENABLE_CSAT_SUB_TEXT": "CSAT(Kundenzufriedenheit) Umfrage aktivieren/deaktivieren nach Abschluss eines Gesprächs",
"SENDER_NAME_SECTION_TEXT": "Aktivieren/Deaktivieren Sie die Anzeige des Agentennamens in der E-Mail. Wenn deaktiviert, wird der Firmenname angezeigt",
"ENABLE_CONTINUITY_VIA_EMAIL": "Konversationskontinuität per E-Mail aktivieren",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Konversationen werden per E-Mail fortgesetzt, wenn die Kontakt-E-Mail-Adresse verfügbar ist.",
@@ -568,6 +577,32 @@
"LABEL": "Besucher sollten ihren Namen und ihre E-Mail-Adresse angeben, bevor sie den Chat starten"
}
},
+ "CSAT": {
+ "TITLE": "CSAT aktivieren",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Nachricht",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "enthält",
+ "DOES_NOT_CONTAINS": "beinhaltet nicht"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Legen Sie Ihre Verfügbarkeit fest",
"SUBTITLE": "Legen Sie die Verfügbarkeit für das Live-Chat-Widget fest",
@@ -753,7 +788,8 @@
"EMAIL": "E-Mail",
"TELEGRAM": "Telegramm",
"LINE": "Line",
- "API": "API-Kanal"
+ "API": "API-Kanal",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/integrations.json b/app/javascript/dashboard/i18n/locale/de/integrations.json
index f2ec993fe..1b1f4df62 100644
--- a/app/javascript/dashboard/i18n/locale/de/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/de/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Nachricht aktualisiert",
"WEBWIDGET_TRIGGERED": "Vom Benutzer geöffnetes Live-Chat-Widget",
"CONTACT_CREATED": "Kontakt erstellt",
- "CONTACT_UPDATED": "Kontakt aktualisiert"
+ "CONTACT_UPDATED": "Kontakt aktualisiert",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Problem erfolgreich getrennt",
"ERROR": "Beim Aufheben der Verknüpfung des Problems ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Sind Sie sicher, dass Sie die Integration löschen möchten?",
"MESSAGE": "Sind Sie sicher, dass Sie die Integration löschen möchten?",
"CONFIRM": "Ja, löschen",
"CANCEL": "Stornieren"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Kapitän",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Probiere diese Prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Nachricht senden...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain denkt nach",
"YOU": "Sie",
"USE": "Verwenden",
"RESET": "Zurücksetzen",
- "SELECT_ASSISTANT": "Assistent auswählen"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Assistent auswählen",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Sie",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Schreiben Sie Ihre Nachricht...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade auf Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "Sie können Ihr Paket jederzeit ändern oder kündigen"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI Funktion ist nur mit einem kostenpflichtigen Tarif verfügbar.",
"UPGRADE_PROMPT": "Tarif upgraden, um Zugang zu unseren Assistenten, Copilot und mehr zu erhalten.",
"ASK_ADMIN": "Bitte kontaktieren Sie Ihren Administrator für das Upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Aktualisieren",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Funktionen",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Beschreibung",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Funktionen",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/de/macros.json b/app/javascript/dashboard/i18n/locale/de/macros.json
index b1e0b2134..d618e6b58 100644
--- a/app/javascript/dashboard/i18n/locale/de/macros.json
+++ b/app/javascript/dashboard/i18n/locale/de/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Aktionsparameter sind erforderlich",
"ATLEAST_ONE_CONDITION_REQUIRED": "Mindestens eine Bedingung ist erforderlich",
"ATLEAST_ONE_ACTION_REQUIRED": "Mindestens eine Aktion ist erforderlich"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Unterhaltung stummschalten",
+ "SNOOZE_CONVERSATION": "Snooze-Konversation",
+ "RESOLVE_CONVERSATION": "Unterhaltung als gelöst kennzeichnen",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Priorität ändern",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/report.json b/app/javascript/dashboard/i18n/locale/de/report.json
index 8292b26c1..4b760328b 100644
--- a/app/javascript/dashboard/i18n/locale/de/report.json
+++ b/app/javascript/dashboard/i18n/locale/de/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Label-Übersicht",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Diagrammdaten laden...",
"NO_ENOUGH_DATA": "Wir haben nicht genügend Datenpunkte erhalten, um einen Bericht zu erstellen. Bitte versuchen Sie es später erneut.",
"DOWNLOAD_LABEL_REPORTS": "Label-Berichte herunterladen",
@@ -559,6 +560,7 @@
"INBOX": "Posteingang",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/de/search.json b/app/javascript/dashboard/i18n/locale/de/search.json
index 50b00796b..562c63abe 100644
--- a/app/javascript/dashboard/i18n/locale/de/search.json
+++ b/app/javascript/dashboard/i18n/locale/de/search.json
@@ -4,12 +4,14 @@
"ALL": "Alle",
"CONTACTS": "Kontakte",
"CONVERSATIONS": "Gespräche",
- "MESSAGES": "Nachrichten"
+ "MESSAGES": "Nachrichten",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakte",
"CONVERSATIONS": "Gespräche",
- "MESSAGES": "Nachrichten"
+ "MESSAGES": "Nachrichten",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/de/settings.json b/app/javascript/dashboard/i18n/locale/de/settings.json
index c3c21576c..cedbf0189 100644
--- a/app/javascript/dashboard/i18n/locale/de/settings.json
+++ b/app/javascript/dashboard/i18n/locale/de/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Zugangstoken",
"NOTE": "Dieses Token kann verwendet werden, wenn Sie eine API-basierte Integration erstellen",
- "COPY": "Kopieren"
+ "COPY": "Kopieren",
+ "RESET": "Zurücksetzen",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Verfügbarkeit wurde erfolgreich gesetzt",
- "SET_AVAILABILITY_ERROR": "Verfügbarkeit konnte nicht gesetzt werden, bitte versuchen Sie es erneut"
+ "SET_AVAILABILITY_ERROR": "Verfügbarkeit konnte nicht gesetzt werden, bitte versuchen Sie es erneut",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Deine Emailadresse",
@@ -280,6 +286,7 @@
"REPORTS": "Berichte",
"SETTINGS": "Einstellungen",
"CONTACTS": "Kontakte",
+ "ACTIVE": "Aktiv",
"CAPTAIN": "Kapitän",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Firmenname",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Abschicken"
+ "SUBMIT": "Abschicken",
+ "CANCEL": "Stornieren"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/el/agentBots.json b/app/javascript/dashboard/i18n/locale/el/agentBots.json
index 381383489..b2b475816 100644
--- a/app/javascript/dashboard/i18n/locale/el/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/el/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Το Όνομα Bot είναι απαραίτητο."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "Τι κάνει αυτό το bot?"
- },
- "BOT_CONFIG": {
- "ERROR": "Παρακαλώ εισάγετε την διαμόρφωση του CSML bot παραπάνω.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Επαλήθευση και αποθήκευση"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Επιλέξτε ενός Agent Bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Ρύθμιση νέου bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Άκυρο",
"API": {
"SUCCESS_MESSAGE": "Το bot προστέθηκε επιτυχώς.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Σύνδεσμος Webhook"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Διαγραφή",
"TITLE": "Delete bot",
- "SUBMIT": "Διαγραφή",
- "CANCEL_BUTTON_TEXT": "Άκυρο",
- "DESCRIPTION": "Είστε βέβαιοι ότι θέλετε να διαγράψετε αυτό το bot? Αυτή η ενέργεια είναι μη αναστρέψιμη.",
+ "CONFIRM": {
+ "TITLE": "Επιβεβαίωση Διαγραφής",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Ναι, Διέγραψε το",
+ "NO": "Όχι, Διατήρηση"
+ },
"API": {
"SUCCESS_MESSAGE": "Το bot διαγράφηκε επιτυχώς.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Επεξεργασία",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Άκυρο",
"API": {
"SUCCESS_MESSAGE": "Το bot ενημερώθηκε επιτυχώς.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Κώδικας Πρόσβασης (Access Token)",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Το Όνομα Bot είναι απαραίτητο"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Περιγραφή",
+ "PLACEHOLDER": "Τι κάνει αυτό το bot?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Σύνδεσμος Webhook",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Το Όνομα Bot είναι απαραίτητο",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Άκυρο",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/auditLogs.json b/app/javascript/dashboard/i18n/locale/el/auditLogs.json
index 2b6308f8a..0cfee94b1 100644
--- a/app/javascript/dashboard/i18n/locale/el/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/el/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/automation.json b/app/javascript/dashboard/i18n/locale/el/automation.json
index d16b58e57..de7bbe3cb 100644
--- a/app/javascript/dashboard/i18n/locale/el/automation.json
+++ b/app/javascript/dashboard/i18n/locale/el/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Κανένα"
+ "NONE_OPTION": "Κανένα",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Δημιουργήθηκε Συνομιλία",
+ "CONVERSATION_UPDATED": "Η Συνομιλία Ενημερώθηκε",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Σίγαση Συνομιλίας",
+ "SNOOZE_CONVERSATION": "Αναβολή Συνομιλίας",
+ "RESOLVE_CONVERSATION": "Επίλυση Συνομιλίας",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Εισερχόμενα",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Αριθμός Τηλεφώνου",
+ "STATUS": "Κατάσταση",
+ "BROWSER_LANGUAGE": "Γλώσσα Περιήγησης",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Χώρα",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Ομάδα",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/components.json b/app/javascript/dashboard/i18n/locale/el/components.json
index 2e0f6c686..0e08a569b 100644
--- a/app/javascript/dashboard/i18n/locale/el/components.json
+++ b/app/javascript/dashboard/i18n/locale/el/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Μάθετε περισσότερα",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/contact.json b/app/javascript/dashboard/i18n/locale/el/contact.json
index 5487a61b6..7cb18c39f 100644
--- a/app/javascript/dashboard/i18n/locale/el/contact.json
+++ b/app/javascript/dashboard/i18n/locale/el/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Επαφές",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Μήνυμα",
"SEND_MESSAGE": "Αποστολή μηνύματος",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Διαγραφή Επαφής",
"DELETE_DIALOG": {
"TITLE": "Επιβεβαίωση Διαγραφής",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Ναι, Διέγραψε το",
"API": {
"SUCCESS_MESSAGE": "Η επαφή διαγράφηκε επιτυχώς",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Δεν υπάρχουν επαφές που να αντιστοιχούν με την αναζήτησή σας 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/el/conversation.json b/app/javascript/dashboard/i18n/locale/el/conversation.json
index c91713988..ecfea2a9b 100644
--- a/app/javascript/dashboard/i18n/locale/el/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/el/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Φόρτωση Συζητήσεων",
"CANNOT_REPLY": "Δεν μπορείτε να απαντήσετε εξαιτίας",
"24_HOURS_WINDOW": "του περιορισμού των 24 ωρών",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Αυτή η συνομιλία δεν έχει ανατεθεί σε εσάς. Θα θέλατε να αντιστοιχίσετε αυτή τη συνομιλία στον εαυτό σας;",
"ASSIGN_TO_ME": "Ανάθεση σε μένα",
"TWILIO_WHATSAPP_CAN_REPLY": "Μπορείτε να απαντήσετε μόνο σε αυτή τη συνομιλία χρησιμοποιώντας ένα πρότυπο μήνυμα επειδή",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "του περιορισμού των 24 ωρών",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Απαντάτε στο:",
"REMOVE_SELECTION": "Διαγραφή Επιλογής",
"DOWNLOAD": "Κατέβασμα",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Επίλυση",
"REOPEN_ACTION": "Επαναφορά",
"OPEN_ACTION": "Ανοιχτές",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Περισσότερα",
"CLOSE": "Κλείσιμο",
"DETAILS": "Λεπτομέρειες",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Διαγραφή"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Σήμανση ως εκκρεμής",
"RESOLVED": "Σήμανση ως επιλυμένου",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Εκχώρηση ετικέτας",
"AGENTS_LOADING": "Φόρτωση πρακτόρων...",
"ASSIGN_TEAM": "Ανάθεση ομάδας",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Η συνομιλία με αριθμό {conversationId} ανατέθηκε στον \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Επιτυχής εκχώρηση ετικέτας",
"ASSIGN_LABEL_FAILED": "Η εκχώρηση ετικέτας απέτυχε",
"CHANGE_TEAM": "Η ομάδα συνομιλίας άλλαξε",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Το αρχείο υπερβαίνει το όριο συνημμένου {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE}",
"MESSAGE_ERROR": "Δεν είναι δυνατή η αποστολή του μηνύματος, παρακαλώ προσπαθήστε ξανά αργότερα",
"SENT_BY": "Αποστολή από:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Ενέργειες Συνομιλίας",
"CONVERSATION_LABELS": "Ετικέτες συνομιλίας",
"CONVERSATION_INFO": "Πληροφορίες Συνομιλίας",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Ιδιότητες Επαφής",
"PREVIOUS_CONVERSATION": "Προηγούμενες συνομιλίες",
"MACROS": "Μακροεντολές",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/el/general.json b/app/javascript/dashboard/i18n/locale/el/general.json
index a1f613aa7..215e07e89 100644
--- a/app/javascript/dashboard/i18n/locale/el/general.json
+++ b/app/javascript/dashboard/i18n/locale/el/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Αναζήτηση",
"EMPTY_STATE": "Δεν βρέθηκαν αποτελέσματα"
- }
+ },
+ "CLOSE": "Κλείσιμο"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/generalSettings.json b/app/javascript/dashboard/i18n/locale/el/generalSettings.json
index 094daed44..028897002 100644
--- a/app/javascript/dashboard/i18n/locale/el/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/el/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Ρυθμίσεις",
"SUBMIT": "Ενημέρωση Ρυθμίσεων",
"BACK": "Πίσω",
@@ -8,6 +14,26 @@
"ERROR": "Δεν μπορεί να ενημερωθεί η ρύθμιση προσπαθήστε ξανά!",
"SUCCESS": "Επιτυχής Ενημέρωση Ρυθμίσεων"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Διαγραφή",
+ "DISMISS": "Άκυρο",
+ "PLACE_HOLDER": "Παρακαλώ πληκτρολογήστε {accountName} για επιβεβαίωση"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Παρακαλώ διορθώστε τα λάθη της Φόρμας",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID Λογαριασμού",
"NOTE": "Αυτό το ID απαιτείται αν δημιουργείτε μια ενσωμάτωση βασισμένη στο API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Ονομασία Λογαριασμού",
"PLACEHOLDER": "Η ονομασία του Λογαριασμού σας",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "To email υποστήριξης της εταιρίας σας",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Αριθμός ημερών μετά τις οποίες η συνομιλία θα επιλύεται αυτόματα, αν δεν υπάρχει δραστηριότητα",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Παρακαλώ εισάγετε μια έγκυρη διάρκεια αυτόματης επίλυσης (ελάχιστο 1 ημέρα και μέγιστο 999 ημέρες)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Ενημέρωση",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Η συνέχεια της συνομιλίας με emails έχει ενεργοποιηθεί για τον λογαριασμό.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Μια ενημέρωση {latestChatwootVersion} για το Chatwoot είναι διαθέσιμη. Ενημερώστε την εφαρμογή σας.",
"LEARN_MORE": "Μάθετε περισσότερα",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/el/helpCenter.json b/app/javascript/dashboard/i18n/locale/el/helpCenter.json
index 6f29b4b88..3c9d4f7bc 100644
--- a/app/javascript/dashboard/i18n/locale/el/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/el/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Το Slug είναι απαραίτητο"
+ "ERROR": "Το Slug είναι απαραίτητο",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json
index 2f31eb5fb..46d205201 100644
--- a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Όνομα Κιβωτίου",
"ADD_NAME": "Ονοματίστε το κιβώτιο σας",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Επιλέξτε τιμή"
+ "PICK_A_VALUE": "Επιλέξτε τιμή",
+ "CREATE_INBOX": "Δημιουργία Κιβωτίου"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Για να προσθέσετε το Προφίλ Twitter ως κανάλι, πρέπει να επικυρώστε το Προφίλ σας στο Twiter κάνοντας click στο 'Είσοδος με το Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Φόρμα Προ-Συνομιλίας",
"BUSINESS_HOURS": "Ώρες Εργασίας",
"WIDGET_BUILDER": "Δημιουργός Widget",
- "BOT_CONFIGURATION": "Ρυθμίσεις Bot"
+ "BOT_CONFIGURATION": "Ρυθμίσεις Bot",
+ "CSAT": "CSAT"
},
"SETTINGS": "Ρυθμίσεις",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Ενεργοποιήσετε το πλαίσιο συλλογής email",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Ενεργοποίηση ή απενεργοποίηση του πλαισίου συλλογής μηνυμάτων ηλεκτρονικού ταχυδρομείου στη νέα συνομιλία",
"AUTO_ASSIGNMENT": "Επιτρέπεται η αυτόματη αντιστοίχιση",
- "ENABLE_CSAT": "Ενεργοποίηση CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Ενεργοποίηση/Απενεργοποίηση της έρευνας CSAT (ικανοποίηση πελατών) μετά την επίλυση μιας συνομιλίας",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Ενεργοποίηση της συνέχειας συνομιλίας μέσω email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Οι συζητήσεις θα συνεχίσουν μέσω email αν η διεύθυνση ηλεκτρονικού ταχυδρομείου επαφής είναι διαθέσιμη.",
@@ -568,6 +577,32 @@
"LABEL": "Οι επισκέπτες θα πρέπει να συμπληρώνουν το όνομα και τη διεύθυνση ηλεκτρονικού ταχυδρομείου τους πριν από την έναρξη της συνομιλίας"
}
},
+ "CSAT": {
+ "TITLE": "Ενεργοποίηση CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Μήνυμα",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "περιέχει",
+ "DOES_NOT_CONTAINS": "δεν περιέχει"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Ορίστε τη διαθεσιμότητά σας",
"SUBTITLE": "Ορίστε τη διαθεσιμότητα στο livechat widget σας",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "Κανάλι API"
+ "API": "Κανάλι API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/integrations.json b/app/javascript/dashboard/i18n/locale/el/integrations.json
index 2efe97a7e..0e48b011a 100644
--- a/app/javascript/dashboard/i18n/locale/el/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/el/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Το μήνυμα ενημερώθηκε",
"WEBWIDGET_TRIGGERED": "Το widget συνομιλίας άνοιξε από τον χρήστη",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Άκυρο"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Αποστολή μηνύματος...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Πληκτρολογήστε το μήνυμά σας...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Ενημέρωση",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Χαρακτηριστικά",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Όνομα",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Περιγραφή",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Χαρακτηριστικά",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/el/macros.json b/app/javascript/dashboard/i18n/locale/el/macros.json
index 69c435630..6f46f1a52 100644
--- a/app/javascript/dashboard/i18n/locale/el/macros.json
+++ b/app/javascript/dashboard/i18n/locale/el/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Σίγαση Συνομιλίας",
+ "SNOOZE_CONVERSATION": "Αναβολή Συνομιλίας",
+ "RESOLVE_CONVERSATION": "Επίλυση Συνομιλίας",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/report.json b/app/javascript/dashboard/i18n/locale/el/report.json
index 01a21e2ba..e301c95dc 100644
--- a/app/javascript/dashboard/i18n/locale/el/report.json
+++ b/app/javascript/dashboard/i18n/locale/el/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Επισκόπηση Ετικετών",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Φόρτωση δεδομένων γραφήματος...",
"NO_ENOUGH_DATA": "Δεν έχουν ληφθεί αρκετά σημεία δεδομένων για την δημιουργία της αναφοράς, Παρακαλώ προσπαθήστε αργότερα.",
"DOWNLOAD_LABEL_REPORTS": "Λήψη αναφορών ετικέτας",
@@ -559,6 +560,7 @@
"INBOX": "Εισερχόμενα",
"AGENT": "Πράκτορας",
"TEAM": "Ομάδα",
+ "LABEL": "Ετικέτα",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/el/search.json b/app/javascript/dashboard/i18n/locale/el/search.json
index 4ac18bdaf..ab73f8a4f 100644
--- a/app/javascript/dashboard/i18n/locale/el/search.json
+++ b/app/javascript/dashboard/i18n/locale/el/search.json
@@ -4,12 +4,14 @@
"ALL": "Όλες",
"CONTACTS": "Επαφές",
"CONVERSATIONS": "Συζητήσεις",
- "MESSAGES": "Μηνύματα"
+ "MESSAGES": "Μηνύματα",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Επαφές",
"CONVERSATIONS": "Συζητήσεις",
- "MESSAGES": "Μηνύματα"
+ "MESSAGES": "Μηνύματα",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/el/settings.json b/app/javascript/dashboard/i18n/locale/el/settings.json
index e0ce27983..fa6a645a7 100644
--- a/app/javascript/dashboard/i18n/locale/el/settings.json
+++ b/app/javascript/dashboard/i18n/locale/el/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Κώδικας Πρόσβασης (Access Token)",
"NOTE": "Χρησιμοποιείται σε περίπτωση εξωτερικής ενοποίησης της εφαρμογής με κώδικα (API)",
- "COPY": "Αντιγραφή"
+ "COPY": "Αντιγραφή",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Εκτός"
},
"SET_AVAILABILITY_SUCCESS": "Η διαθεσιμότητα ορίστηκε με επιτυχία",
- "SET_AVAILABILITY_ERROR": "Αδυναμία ορισμού διαθεσιμότητας, παρακαλώ προσπαθήστε ξανά"
+ "SET_AVAILABILITY_ERROR": "Αδυναμία ορισμού διαθεσιμότητας, παρακαλώ προσπαθήστε ξανά",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Η διεύθυνση email",
@@ -280,6 +286,7 @@
"REPORTS": "Αναφορές",
"SETTINGS": "Ρυθμίσεις",
"CONTACTS": "Επαφές",
+ "ACTIVE": "Ενεργή",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Όνομα Εταιρείας",
"PLACEHOLDER": "Wayne Α. Ε"
},
- "SUBMIT": "Καταχώρηση"
+ "SUBMIT": "Καταχώρηση",
+ "CANCEL": "Άκυρο"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/en/agentBots.json b/app/javascript/dashboard/i18n/locale/en/agentBots.json
index 128cd1564..d3a0bb991 100644
--- a/app/javascript/dashboard/i18n/locale/en/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/en/agentBots.json
@@ -59,6 +59,13 @@
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
"FORM": {
"AVATAR": {
"LABEL": "Bot avatar"
diff --git a/app/javascript/dashboard/i18n/locale/en/auditLogs.json b/app/javascript/dashboard/i18n/locale/en/auditLogs.json
index 8194c667c..f85ad2a3e 100644
--- a/app/javascript/dashboard/i18n/locale/en/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/en/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/components.json b/app/javascript/dashboard/i18n/locale/en/components.json
index c7230b1fc..e44c6e039 100644
--- a/app/javascript/dashboard/i18n/locale/en/components.json
+++ b/app/javascript/dashboard/i18n/locale/en/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/contact.json b/app/javascript/dashboard/i18n/locale/en/contact.json
index 3bc3be316..4f0a27cae 100644
--- a/app/javascript/dashboard/i18n/locale/en/contact.json
+++ b/app/javascript/dashboard/i18n/locale/en/contact.json
@@ -286,6 +286,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -458,6 +459,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -467,7 +472,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Confirm Deletion",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -545,6 +550,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -553,7 +561,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
diff --git a/app/javascript/dashboard/i18n/locale/en/conversation.json b/app/javascript/dashboard/i18n/locale/en/conversation.json
index 9f78a9684..c047f17ad 100644
--- a/app/javascript/dashboard/i18n/locale/en/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/en/conversation.json
@@ -70,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -117,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -133,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -207,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -295,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/en/general.json b/app/javascript/dashboard/i18n/locale/en/general.json
index 78e97db90..129fb239a 100644
--- a/app/javascript/dashboard/i18n/locale/en/general.json
+++ b/app/javascript/dashboard/i18n/locale/en/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/generalSettings.json b/app/javascript/dashboard/i18n/locale/en/generalSettings.json
index cfda6c7da..c0c4d247d 100644
--- a/app/javascript/dashboard/i18n/locale/en/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/en/generalSettings.json
@@ -44,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -64,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
diff --git a/app/javascript/dashboard/i18n/locale/en/helpCenter.json b/app/javascript/dashboard/i18n/locale/en/helpCenter.json
index 8fa64108b..f437b83d9 100644
--- a/app/javascript/dashboard/i18n/locale/en/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/en/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json
index 5716e050c..cc0fe4b33 100644
--- a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json
@@ -481,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -502,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -578,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
diff --git a/app/javascript/dashboard/i18n/locale/en/integrations.json b/app/javascript/dashboard/i18n/locale/en/integrations.json
index deae9353a..a31344295 100644
--- a/app/javascript/dashboard/i18n/locale/en/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/en/integrations.json
@@ -55,7 +55,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -327,11 +329,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Cancel"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -340,13 +349,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
"EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -356,7 +400,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -371,6 +414,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -386,21 +430,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -410,7 +482,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/en/report.json b/app/javascript/dashboard/i18n/locale/en/report.json
index 294ca2e7b..7c42fdfba 100644
--- a/app/javascript/dashboard/i18n/locale/en/report.json
+++ b/app/javascript/dashboard/i18n/locale/en/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/en/search.json b/app/javascript/dashboard/i18n/locale/en/search.json
index 3cb566813..e8510ab97 100644
--- a/app/javascript/dashboard/i18n/locale/en/search.json
+++ b/app/javascript/dashboard/i18n/locale/en/search.json
@@ -4,12 +4,14 @@
"ALL": "All",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/en/settings.json b/app/javascript/dashboard/i18n/locale/en/settings.json
index 10a21245b..219041d75 100644
--- a/app/javascript/dashboard/i18n/locale/en/settings.json
+++ b/app/javascript/dashboard/i18n/locale/en/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
diff --git a/app/javascript/dashboard/i18n/locale/es/agentBots.json b/app/javascript/dashboard/i18n/locale/es/agentBots.json
index 06f436c45..512bbf7dd 100644
--- a/app/javascript/dashboard/i18n/locale/es/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/es/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Cargando el editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Nombre del bot",
- "PLACEHOLDER": "Nombra tu bot.",
- "ERROR": "El nombre del bot es obligatorio."
- },
- "DESCRIPTION": {
- "LABEL": "Descripción del bot",
- "PLACEHOLDER": "¿Qué hace este bot?"
- },
- "BOT_CONFIG": {
- "ERROR": "Por favor, introduzca la configuración del bot CSML arriba.",
- "API_ERROR": "La configuración CSML no es válida, por favor corríjala e inténtalo de nuevo."
- },
- "SUBMIT": "Validar y guardar"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "Sistema",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Seleccione un bot de agente",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Seleccionar bot"
},
"ADD": {
- "TITLE": "Configurar nuevo bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancelar",
"API": {
"SUCCESS_MESSAGE": "Bot añadido correctamente.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No se encontraron bots, puedes crear un bot haciendo clic en el botón 'Configurar nuevo bot' ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Obteniendo bots...",
- "TYPE": "Tipo de bot"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "URL de Webhook"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Eliminar",
"TITLE": "Eliminar bot",
- "SUBMIT": "Eliminar",
- "CANCEL_BUTTON_TEXT": "Cancelar",
- "DESCRIPTION": "¿Estás seguro de que quieres eliminar este bot? Esta acción es irreversible.",
+ "CONFIRM": {
+ "TITLE": "Confirmar eliminación",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Sí, eliminar",
+ "NO": "No, mantenerlo"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot eliminado correctamente.",
"ERROR_MESSAGE": "No se pudo eliminar el bot. Por favor, inténtalo de nuevo."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Editar",
- "LOADING": "Obteniendo bots...",
"TITLE": "Editar bot",
- "CANCEL_BUTTON_TEXT": "Cancelar",
"API": {
"SUCCESS_MESSAGE": "Bot actualizado correctamente.",
"ERROR_MESSAGE": "No se pudo actualizar el bot, por favor inténtalo de nuevo más tarde."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Token de acceso",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Nombre del bot",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "El nombre del bot es obligatorio"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripción",
+ "PLACEHOLDER": "¿Qué hace este bot?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "URL de Webhook",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "El nombre del bot es obligatorio",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancelar",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook Bot",
- "CSML": "CSML Bot"
+ "WEBHOOK": "Webhook Bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/auditLogs.json b/app/javascript/dashboard/i18n/locale/es/auditLogs.json
index 322cbdfe3..f74178fce 100644
--- a/app/javascript/dashboard/i18n/locale/es/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/es/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} actualizó la configuración de la cuenta (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/automation.json b/app/javascript/dashboard/i18n/locale/es/automation.json
index b09985b09..90a7eb799 100644
--- a/app/javascript/dashboard/i18n/locale/es/automation.json
+++ b/app/javascript/dashboard/i18n/locale/es/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "Se requiere al menos una condición",
"ATLEAST_ONE_ACTION_REQUIRED": "Se requiere al menos una acción"
},
- "NONE_OPTION": "Ninguna"
+ "NONE_OPTION": "Ninguna",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversación creada",
+ "CONVERSATION_UPDATED": "Conversación actualizada",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Silenciar Conversación",
+ "SNOOZE_CONVERSATION": "Posponer conversación",
+ "RESOLVE_CONVERSATION": "Resolver conversación",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Cambiar prioridad",
+ "ADD_SLA": "Añadir SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "E-mail",
+ "INBOX": "Bandeja de entrada",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Número telefónico",
+ "STATUS": "Estado",
+ "BROWSER_LANGUAGE": "Idioma del navegador",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "País",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Cesionario",
+ "TEAM_NAME": "Equipo",
+ "PRIORITY": "Prioridad"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/components.json b/app/javascript/dashboard/i18n/locale/es/components.json
index 67564e605..79764eadc 100644
--- a/app/javascript/dashboard/i18n/locale/es/components.json
+++ b/app/javascript/dashboard/i18n/locale/es/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Más información",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/contact.json b/app/javascript/dashboard/i18n/locale/es/contact.json
index b3165cce0..41ee73d66 100644
--- a/app/javascript/dashboard/i18n/locale/es/contact.json
+++ b/app/javascript/dashboard/i18n/locale/es/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contactos",
"SEARCH_TITLE": "Buscar contactos",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Buscar...",
"MESSAGE_BUTTON": "Mensaje",
"SEND_MESSAGE": "Enviar mensaje",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Agregar Twitter/X"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Eliminar contacto",
"DELETE_DIALOG": {
"TITLE": "Confirmar eliminación",
- "DESCRIPTION": "¿Estás seguro de que quieres eliminar este contacto {contactName}?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Sí, eliminar",
"API": {
"SUCCESS_MESSAGE": "Contacto eliminado correctamente",
@@ -544,6 +549,9 @@
"WROTE": "escribió",
"YOU": "Tú",
"SAVE": "Guardar nota",
+ "EXPAND": "Expandir",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "No hay notas asociadas a este contacto. Puede añadir una nota escribiendo en el recuadro superior."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Empieza a añadir nuevos contactos haciendo clic en el botón de abajo",
"BUTTON_LABEL": "Añadir contacto",
"SEARCH_EMPTY_STATE_TITLE": "No hay contactos que coincidan con tu búsqueda 🔍",
- "LIST_EMPTY_STATE_TITLE": "No hay contactos disponibles en esta vista 📋"
+ "LIST_EMPTY_STATE_TITLE": "No hay contactos disponibles en esta vista 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/es/conversation.json b/app/javascript/dashboard/i18n/locale/es/conversation.json
index b8f76be10..3733925eb 100644
--- a/app/javascript/dashboard/i18n/locale/es/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/es/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Cargando conversaciones",
"CANNOT_REPLY": "No puede responder debido a",
"24_HOURS_WINDOW": "Restricción de la ventana de mensajes de 24 horas",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Esta conversación no te está asignada. ¿Quieres asignarla a ti mismo?",
"ASSIGN_TO_ME": "Asignar a mi",
"TWILIO_WHATSAPP_CAN_REPLY": "Sólo puede responder a esta conversación usando una plantilla de mensaje debido a",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Restricción de la ventana de mensajes de 24 horas",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Esta respondiendo a:",
"REMOVE_SELECTION": "Eliminar selección",
"DOWNLOAD": "Descargar",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolver",
"REOPEN_ACTION": "Reabrir",
"OPEN_ACTION": "Abrir",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Más",
"CLOSE": "Cerrar",
"DETAILS": "detalles",
@@ -115,6 +118,11 @@
"FAILED": "No se pudo cambiar la prioridad. Por favor, inténtelo de nuevo."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Eliminar"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Marcar como pendiente",
"RESOLVED": "Marcar como resuelto",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Asignar etiqueta",
"AGENTS_LOADING": "Cargando agentes...",
"ASSIGN_TEAM": "Asignar equipo",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "ID de conversación {conversationId} asignado a \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Etiqueta asignada correctamente",
"ASSIGN_LABEL_FAILED": "No se ha podido asignar la etiqueta",
"CHANGE_TEAM": "Equipo de conversación cambiado",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "El archivo supera el límite de archivos adjuntos de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
"MESSAGE_ERROR": "No se puede enviar este mensaje, por favor inténtalo de nuevo más tarde",
"SENT_BY": "Enviado por:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Acciones de conversación",
"CONVERSATION_LABELS": "Etiquetas de conversación",
"CONVERSATION_INFO": "Información de la conversación",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Atributos de contacto",
"PREVIOUS_CONVERSATION": "Conversaciones anteriores",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/es/general.json b/app/javascript/dashboard/i18n/locale/es/general.json
index 20d218464..84e57dae6 100644
--- a/app/javascript/dashboard/i18n/locale/es/general.json
+++ b/app/javascript/dashboard/i18n/locale/es/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Buscar",
"EMPTY_STATE": "No se encontraron resultados"
- }
+ },
+ "CLOSE": "Cerrar"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/generalSettings.json b/app/javascript/dashboard/i18n/locale/es/generalSettings.json
index 5fb524340..ce462c715 100644
--- a/app/javascript/dashboard/i18n/locale/es/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/es/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Configuración de la cuenta",
"SUBMIT": "Actualizar ajustes",
"BACK": "Atrás",
@@ -8,6 +14,26 @@
"ERROR": "No se pudo actualizar la configuración, ¡inténtalo de nuevo!",
"SUCCESS": "Configuración de cuenta actualizada correctamente"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Eliminar",
+ "DISMISS": "Cancelar",
+ "PLACE_HOLDER": "Por favor escriba {accountName} para confirmar"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Por favor, corrija los errores de formulario",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID de Cuenta",
"NOTE": "Este ID es necesario si estás construyendo una integración basada en API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferencias",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Nombre de cuenta",
"PLACEHOLDER": "Tu nombre de cuenta",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Email de soporte de su empresa",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Número de días después de que un ticket se resuelva automáticamente si no hay actividad",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Por favor introduzca una duración válida de resolución automática (mínimo 1 día y máximo 999 días)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Actualizar",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Continuidad de la conversación con emails está habilitada para su cuenta.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Hay una actualización {latestChatwootVersion} para Chatwoot disponible. Por favor, actualiza tu instancia.",
"LEARN_MORE": "Más información",
"PAYMENT_PENDING": "Tu pago está pendiente. Por favor actualiza tu información de pago para seguir usando Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Su cuenta ha excedido los límites de uso, por favor actualice su plan para seguir usando Chatwoot",
"OPEN_BILLING": "Abrir facturación"
},
diff --git a/app/javascript/dashboard/i18n/locale/es/helpCenter.json b/app/javascript/dashboard/i18n/locale/es/helpCenter.json
index 9d55747bd..398b4c944 100644
--- a/app/javascript/dashboard/i18n/locale/es/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/es/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug es requerido"
+ "ERROR": "Slug es requerido",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json
index d2e39e373..400a604a6 100644
--- a/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Nombre de la bandeja de entrada",
"ADD_NAME": "Añada un nombre para su bandeja de entrada",
"PICK_NAME": "Elija un nombre para su bandeja de entrada",
- "PICK_A_VALUE": "Elija un valor"
+ "PICK_A_VALUE": "Elija un valor",
+ "CREATE_INBOX": "Crear bandeja de entrada"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Para añadir tu perfil de Twitter como un canal, necesitas autenticar tu perfil de Twitter haciendo clic en 'Iniciar sesión con Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre-formulario de chat",
"BUSINESS_HOURS": "Horarios",
"WIDGET_BUILDER": "Constructor de Widget",
- "BOT_CONFIGURATION": "Configuración del bot"
+ "BOT_CONFIGURATION": "Configuración del bot",
+ "CSAT": "Encuestas de Satisfacción"
},
"SETTINGS": "Ajustes",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Activar caja de recolección de correo electrónico",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Activar o desactivar la caja de recolección de correo electrónico",
"AUTO_ASSIGNMENT": "Activar asignación automática",
- "ENABLE_CSAT": "Habilitar Encuesta de Satisfacción",
"SENDER_NAME_SECTION": "Habilitar nombre del agente en el correo electrónico",
- "ENABLE_CSAT_SUB_TEXT": "Habilitar/deshabilitar encuesta CSAT(satisfacción del cliente) después de resolver una conversación",
"SENDER_NAME_SECTION_TEXT": "Habilitar/Deshabilitar mostrando el nombre del agente en el correo electrónico, si está deshabilitado, mostrará el nombre del negocio",
"ENABLE_CONTINUITY_VIA_EMAIL": "Habilitar continuidad de conversación por correo electrónico",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Las conversaciones continuarán por correo electrónico si la dirección de correo electrónico de contacto está disponible.",
@@ -568,6 +577,32 @@
"LABEL": "Los visitantes deben proporcionar su nombre y dirección de correo electrónico antes de iniciar el chat"
}
},
+ "CSAT": {
+ "TITLE": "Habilitar Encuesta de Satisfacción",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Mensaje",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contiene",
+ "DOES_NOT_CONTAINS": "no contiene"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Establecer su disponibilidad",
"SUBTITLE": "Establezca su disponibilidad en su widget de livechat",
@@ -753,7 +788,8 @@
"EMAIL": "E-mail",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "Canal API"
+ "API": "Canal API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/integrations.json b/app/javascript/dashboard/i18n/locale/es/integrations.json
index 82b6af6be..d9abe6c63 100644
--- a/app/javascript/dashboard/i18n/locale/es/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/es/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Mensaje actualizado",
"WEBWIDGET_TRIGGERED": "Widget de Live Chat abierto por el usuario",
"CONTACT_CREATED": "Contacto creado",
- "CONTACT_UPDATED": "Contacto actualizado"
+ "CONTACT_UPDATED": "Contacto actualizado",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Problema desvinculado con éxito",
"ERROR": "Se ha producido un error al desvincular el problema, inténtelo de nuevo"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Sí, eliminar",
"CANCEL": "Cancelar"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Capitán",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Prueba estas sugerencias",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Enviar mensaje...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Tú",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Tú",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Escribe tu mensaje...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "Puede cambiar o cancelar su plan en cualquier momento"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Por favor, comuníquese con su administrador para la actualización."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Actualizar",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Características",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Nombre",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Descripción",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Características",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/es/macros.json b/app/javascript/dashboard/i18n/locale/es/macros.json
index a6da88727..627c9d762 100644
--- a/app/javascript/dashboard/i18n/locale/es/macros.json
+++ b/app/javascript/dashboard/i18n/locale/es/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Se requieren parámetros de acción",
"ATLEAST_ONE_CONDITION_REQUIRED": "Se requiere al menos una condición",
"ATLEAST_ONE_ACTION_REQUIRED": "Se requiere al menos una acción"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Silenciar Conversación",
+ "SNOOZE_CONVERSATION": "Posponer conversación",
+ "RESOLVE_CONVERSATION": "Resolver conversación",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Cambiar prioridad",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/report.json b/app/javascript/dashboard/i18n/locale/es/report.json
index 19a0edfd0..316500a3a 100644
--- a/app/javascript/dashboard/i18n/locale/es/report.json
+++ b/app/javascript/dashboard/i18n/locale/es/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Resumen de etiquetas",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Cargando datos del gráfico...",
"NO_ENOUGH_DATA": "No hemos recibido suficientes puntos de datos para generar el informe. Inténtalo de nuevo más tarde.",
"DOWNLOAD_LABEL_REPORTS": "Descargar reportes de etiquetas",
@@ -559,6 +560,7 @@
"INBOX": "Bandeja de entrada",
"AGENT": "Agente",
"TEAM": "Equipo",
+ "LABEL": "Etiqueta",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/es/search.json b/app/javascript/dashboard/i18n/locale/es/search.json
index 835bccc2a..99e3bd070 100644
--- a/app/javascript/dashboard/i18n/locale/es/search.json
+++ b/app/javascript/dashboard/i18n/locale/es/search.json
@@ -4,12 +4,14 @@
"ALL": "Todos",
"CONTACTS": "Contactos",
"CONVERSATIONS": "Conversaciones",
- "MESSAGES": "Mensajes"
+ "MESSAGES": "Mensajes",
+ "ARTICLES": "Artículos"
},
"SECTION": {
"CONTACTS": "Contactos",
"CONVERSATIONS": "Conversaciones",
- "MESSAGES": "Mensajes"
+ "MESSAGES": "Mensajes",
+ "ARTICLES": "Artículos"
},
"VIEW_MORE": "Ver más",
"LOAD_MORE": "Cargar más",
diff --git a/app/javascript/dashboard/i18n/locale/es/settings.json b/app/javascript/dashboard/i18n/locale/es/settings.json
index 932632957..f9958dfe9 100644
--- a/app/javascript/dashboard/i18n/locale/es/settings.json
+++ b/app/javascript/dashboard/i18n/locale/es/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Token de acceso",
"NOTE": "Este token puede ser usado si estás construyendo una integración basada en API",
- "COPY": "Copiar"
+ "COPY": "Copiar",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Alertas de audio",
@@ -185,7 +190,8 @@
"OFFLINE": "Desconectado"
},
"SET_AVAILABILITY_SUCCESS": "La disponibilidad se ha establecido con éxito",
- "SET_AVAILABILITY_ERROR": "No se pudo establecer la disponibilidad, inténtelo de nuevo"
+ "SET_AVAILABILITY_ERROR": "No se pudo establecer la disponibilidad, inténtelo de nuevo",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Tu dirección de correo",
@@ -280,6 +286,7 @@
"REPORTS": "Informes",
"SETTINGS": "Ajustes",
"CONTACTS": "Contactos",
+ "ACTIVE": "Activo",
"CAPTAIN": "Capitán",
"CAPTAIN_ASSISTANTS": "Asistentes",
"CAPTAIN_DOCUMENTS": "Documentos",
@@ -387,7 +394,8 @@
"LABEL": "Empresa",
"PLACEHOLDER": "Empresas de Wayne"
},
- "SUBMIT": "Enviar"
+ "SUBMIT": "Enviar",
+ "CANCEL": "Cancelar"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/fa/agentBots.json b/app/javascript/dashboard/i18n/locale/fa/agentBots.json
index 536b6e97e..e5af6099c 100644
--- a/app/javascript/dashboard/i18n/locale/fa/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/fa/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "رباتها",
"LOADING_EDITOR": "در حال بارگیری ویرایشگر...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "نام ربات",
- "PLACEHOLDER": "برای ربات خود نامی انتخاب کنید.",
- "ERROR": "نام ربات الزامی است."
- },
- "DESCRIPTION": {
- "LABEL": "توضیحات ربات",
- "PLACEHOLDER": "این ربات چه کاری انجام میدهد؟"
- },
- "BOT_CONFIG": {
- "ERROR": "لطفا پیکربندی ربات CSML خود را در بالا وارد کنید.",
- "API_ERROR": "پیکربندی CSML شما نامعتبر است، لطفا آن را اصلاح کنید و دوباره امتحان کنید."
- },
- "SUBMIT": "اعتبارسنجی و ذخیره کنید"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "سیستم",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "انتخاب یک ربات عامل",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "انتخاب ربات"
},
"ADD": {
- "TITLE": "پیکربندی ربات جدید",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "انصراف",
"API": {
"SUCCESS_MESSAGE": "ربات با موفقیت اضافه شد.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "هیچ رباتی یافت نشد، میتوانید با کلیک کردن روی دکمه «پیکربندی ربات جدید» یک ربات ایجاد کنید ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "در حال گرفتن رباتها...",
- "TYPE": "نوع ربات"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "آدرس URL وب هوک"
+ }
},
"DELETE": {
"BUTTON_TEXT": "حذف",
"TITLE": "حذف ربات",
- "SUBMIT": "حذف",
- "CANCEL_BUTTON_TEXT": "انصراف",
- "DESCRIPTION": "آیا مطمئن هستید که میخواهید این ربات را حذف کنید؟ این عمل برگشتناپذیر است.",
+ "CONFIRM": {
+ "TITLE": "تاییدیه حذف",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "بله، حذف شود",
+ "NO": "نه، بماند"
+ },
"API": {
"SUCCESS_MESSAGE": "ربات با موفقیت حذف شد.",
"ERROR_MESSAGE": "ربات حذف نشد، لطفا دوباره امتحان کنید."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "ویرایش",
- "LOADING": "در حال گرفتن رباتها...",
"TITLE": "ویرایش ربات",
- "CANCEL_BUTTON_TEXT": "انصراف",
"API": {
"SUCCESS_MESSAGE": "ربات با موفقیت بهروز شد.",
"ERROR_MESSAGE": "ربات بروز رسانی نشد، لطفا دوباره امتحان کنید."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "توکن دسترسی",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "نام ربات",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "نام ربات الزامی است"
+ },
+ "DESCRIPTION": {
+ "LABEL": "توضیحات",
+ "PLACEHOLDER": "این ربات چه کاری انجام میدهد؟"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "آدرس URL وب هوک",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "نام ربات الزامی است",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "انصراف",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "وبهوک ربات",
- "CSML": "ربات CSML"
+ "WEBHOOK": "وبهوک ربات"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/auditLogs.json b/app/javascript/dashboard/i18n/locale/fa/auditLogs.json
index e53abfbfb..0b3f78a44 100644
--- a/app/javascript/dashboard/i18n/locale/fa/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/fa/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/automation.json b/app/javascript/dashboard/i18n/locale/fa/automation.json
index 9a137a16f..40ad16241 100644
--- a/app/javascript/dashboard/i18n/locale/fa/automation.json
+++ b/app/javascript/dashboard/i18n/locale/fa/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "هیچکدام"
+ "NONE_OPTION": "هیچکدام",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "گفتگو ایجاد شد",
+ "CONVERSATION_UPDATED": "گفتگو به روز شد",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "بیصدا کردن گفتگو",
+ "SNOOZE_CONVERSATION": "به تعویق انداختن مکالمه",
+ "RESOLVE_CONVERSATION": "حل مکالمه",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "تغییر اولویت",
+ "ADD_SLA": "اضافه کردن SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "ایمیل",
+ "INBOX": "صندوق ورودی",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "شماره تلفن",
+ "STATUS": "وضعیت",
+ "BROWSER_LANGUAGE": "مرور زبان",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "کشور",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "مسئول",
+ "TEAM_NAME": "تیم",
+ "PRIORITY": "اولویت"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/components.json b/app/javascript/dashboard/i18n/locale/fa/components.json
index c4b5cd813..13c553711 100644
--- a/app/javascript/dashboard/i18n/locale/fa/components.json
+++ b/app/javascript/dashboard/i18n/locale/fa/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "بیشتر بدانید",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/contact.json b/app/javascript/dashboard/i18n/locale/fa/contact.json
index 7a6b8f541..3f8940c0e 100644
--- a/app/javascript/dashboard/i18n/locale/fa/contact.json
+++ b/app/javascript/dashboard/i18n/locale/fa/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "مخاطبین",
"SEARCH_TITLE": "جستجوی مخاطبین",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "جستجو...",
"MESSAGE_BUTTON": "پیام",
"SEND_MESSAGE": "ارسال پیام",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "حذف مخاطب",
"DELETE_DIALOG": {
"TITLE": "تاییدیه حذف",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "بله، حذف شود",
"API": {
"SUCCESS_MESSAGE": "مخاطب با موفقیت حذف شد",
@@ -544,6 +549,9 @@
"WROTE": "نوشت",
"YOU": "شما",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "هیچ مخاطبی با جستجوی شما مطابقت ندارد 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/fa/conversation.json b/app/javascript/dashboard/i18n/locale/fa/conversation.json
index bfe2c0102..ef92db5b0 100644
--- a/app/javascript/dashboard/i18n/locale/fa/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/fa/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "در حال بارگیری گفتگوها",
"CANNOT_REPLY": "شما نمیتوانید پاسخ بدهید به دلیل",
"24_HOURS_WINDOW": "محدودیت ۲۴ ساعته پنجره پیام",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "این گفتگو به شما اختصاص داده نشده است. آیا می خواهید این گفتگو را به خودتان اختصاص دهید؟",
"ASSIGN_TO_ME": "اختصاص به من",
"TWILIO_WHATSAPP_CAN_REPLY": "شما فقط می توانید با استفاده از یک پیام الگو به این مکالمه پاسخ دهید",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "محدودیت ۲۴ ساعته پنجره پیام",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "شما در حال پاسخ دادن به:",
"REMOVE_SELECTION": "حذف انتخابشدهها",
"DOWNLOAD": "دانلود",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "حل شد",
"REOPEN_ACTION": "دوباره باز کنید",
"OPEN_ACTION": "باز",
+ "MORE_ACTIONS": "More actions",
"OPEN": "بیشتر",
"CLOSE": "بستن",
"DETAILS": "جزئیات",
@@ -115,6 +118,11 @@
"FAILED": "تغییر اولویت گفتگو با موفقیت انجام نشد. لطفا دوباره تلاش نمایید."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "حذف"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "علامت گذاری به عنوان در انتظار",
"RESOLVED": "علامت زدن به عنوان حل شده",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "برچسب اختصاص دهید",
"AGENTS_LOADING": "بارگذاری اپراتور ها...",
"ASSIGN_TEAM": "تیم را تعیین کنید",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "شناسه مکالمه {conversationId} به \"{agentName}\" اختصاص داده شد",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "برچسب با موفقیت تخصیص یافت",
"ASSIGN_LABEL_FAILED": "تخصیص برچسب ناموفق بود",
"CHANGE_TEAM": "تیم مکالمه تغییر کرد",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "پرونده از حد مجاز پیوست {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} مگابایت بیشتر است",
"MESSAGE_ERROR": "ارسال این پیام امکان پذیر نیست ، لطفاً بعداً دوباره امتحان کنید",
"SENT_BY": "ارسال شده توسط:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "عملیات مکالمات",
"CONVERSATION_LABELS": "برچسبهای گفتگو",
"CONVERSATION_INFO": "اطلاعات مکالمه",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "ویژگیهای تماس",
"PREVIOUS_CONVERSATION": "گفتگوهای قبلی",
"MACROS": "ماکروها",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/fa/general.json b/app/javascript/dashboard/i18n/locale/fa/general.json
index a4b6d9d88..d04980558 100644
--- a/app/javascript/dashboard/i18n/locale/fa/general.json
+++ b/app/javascript/dashboard/i18n/locale/fa/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "جستجو",
"EMPTY_STATE": "نتیجهای یافت نشد"
- }
+ },
+ "CLOSE": "بستن"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/generalSettings.json b/app/javascript/dashboard/i18n/locale/fa/generalSettings.json
index 1202c871f..9d0e398f9 100644
--- a/app/javascript/dashboard/i18n/locale/fa/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/fa/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "تنظیمات حساب",
"SUBMIT": "بهروزرسانی تنظیمات",
"BACK": "بازگشت",
@@ -8,6 +14,26 @@
"ERROR": "تنظیمات بهروزرسانی نشد، دوباره امتحان کنید!",
"SUCCESS": "تنظیمات با موفقیت اعمال شد"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "حذف",
+ "DISMISS": "انصراف",
+ "PLACE_HOLDER": "برای تایید لطفا {accountName} را تایپ کنید"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "لطفا ایرادات فرم را برطرف کنید",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "شناسه حسابکاربری",
"NOTE": "اگر شما در حال ساخت یک یکپارچهسازی مبتنی بر API هستید، این شناسه مورد نیاز است"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "۳۰",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "تنظیمات",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "نام حسابکاربری",
"PLACEHOLDER": "نام حسابکاربری شما",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "ایمیل پشتیبانی شرکت شما",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "تعداد روزهایی که اگر فعالیتی وجود نداشته باشد، گفتگو به صورت خودکار بسته شود",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "۳۰",
- "ERROR": "لطفا یک مدت زمان حل خودکار معبر (بین حداقل 1 روز تا حداکثر 999 روز) وارد کنید"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "اعمال شود",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "تداوم مکالمه با ایمیل برای حساب شما فعال است.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "به روزرسانی{latestChatwootVersion} برای Chatwoot در دسترس است. لطفا نمونه خود را به روز کنید.",
"LEARN_MORE": "بیشتر بدانید",
"PAYMENT_PENDING": "پرداخت شما در حال پردازش است. لطفاً اطلاعات پرداخت خود را برای ادامه استفاده از Chatwoot به روز کنید",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "حساب شما از محدودیت های استفاده فراتر رفته است، لطفاً برای ادامه استفاده از Chatwoot برنامه خود را ارتقا دهید",
"OPEN_BILLING": "باز کردن صورتحساب"
},
diff --git a/app/javascript/dashboard/i18n/locale/fa/helpCenter.json b/app/javascript/dashboard/i18n/locale/fa/helpCenter.json
index d6c386fc8..d6159e581 100644
--- a/app/javascript/dashboard/i18n/locale/fa/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/fa/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug مورد نیاز است"
+ "ERROR": "Slug مورد نیاز است",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json
index df096cd90..87f1f1e95 100644
--- a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "عنوان صندوق ورودی",
"ADD_NAME": "یک اسم به صندوق ورودی خود اضافه کنید",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "یک مقدار انتخاب کنید"
+ "PICK_A_VALUE": "یک مقدار انتخاب کنید",
+ "CREATE_INBOX": "ساخت صندوق ورودی"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "برای اضافه کردن امکان گفتگو از صفحه پروفایل توییترتان، لازم است با زدن دکمه `ورود با توییتر` پروفایل توییتر خود را شناسایی کنید' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "فرم پیش چت",
"BUSINESS_HOURS": "ساعت کاری",
"WIDGET_BUILDER": "سازنده ابزارک",
- "BOT_CONFIGURATION": "پیکربندی ربات"
+ "BOT_CONFIGURATION": "پیکربندی ربات",
+ "CSAT": "رضایت مشتری"
},
"SETTINGS": "تنظیمات",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "فعال سازی فرم دریافت ایمیل از کاربر",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "فعال یا غیرفعال کردن فرم دریافت ایمیل از کاربر",
"AUTO_ASSIGNMENT": "فعال کردن واگذاری خودکار گفتگو به ایجنت ها",
- "ENABLE_CSAT": "فعال کردن رضایت مشتری",
"SENDER_NAME_SECTION": "فعال سازی نام اپراتور در ایمیل",
- "ENABLE_CSAT_SUB_TEXT": "پس از پایان گفتگو ، نظرسنجی CSAT (رضایت مشتری) را فعال/غیرفعال کنید",
"SENDER_NAME_SECTION_TEXT": "فعال/غیرفعال کردن نمایش نام اپراتور در ایمیل، اگر غیرفعال باشد نام کسب و کار نشان داده می شود",
"ENABLE_CONTINUITY_VIA_EMAIL": "ادامه مکالمه را از طریق ایمیل فعال کنید",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "اگر آدرس ایمیل تماس در دسترس باشد، مکالمات از طریق ایمیل ادامه خواهد یافت.",
@@ -568,6 +577,32 @@
"LABEL": "بازدیدکنندگان باید قبل از شروع چت نام و آدرس ایمیل خود را ارائه دهند"
}
},
+ "CSAT": {
+ "TITLE": "فعال کردن رضایت مشتری",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "پیام",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "شامل",
+ "DOES_NOT_CONTAINS": "شامل نمیشود"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "در دسترس بودن خود را تنظیم کنید",
"SUBTITLE": "زمان در دسترس بودن خود را بر روی چت زنده مشخص کنید",
@@ -753,7 +788,8 @@
"EMAIL": "ایمیل",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "کانال API"
+ "API": "کانال API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/integrations.json b/app/javascript/dashboard/i18n/locale/fa/integrations.json
index 706160fda..2e1b4d38e 100644
--- a/app/javascript/dashboard/i18n/locale/fa/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/fa/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "پیام به روز شد",
"WEBWIDGET_TRIGGERED": "ابزارک گفتگو زنده توسط کاربر باز شده است",
"CONTACT_CREATED": "مخاطب ایجاد شد",
- "CONTACT_UPDATED": "مخاطب بهروزرسانی شد"
+ "CONTACT_UPDATED": "مخاطب بهروزرسانی شد",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "بله، حذف شود",
"CANCEL": "انصراف"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "ارسال پیام...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "شما",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "شما",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "پیام خود را وارد کنید...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "لطفاً برای ارتقا با ادمین خود تماس بگیرید."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "اعمال شود",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "امکانات",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "نام",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "توضیحات",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "امکانات",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/fa/macros.json b/app/javascript/dashboard/i18n/locale/fa/macros.json
index 49bb7635e..2501c2f66 100644
--- a/app/javascript/dashboard/i18n/locale/fa/macros.json
+++ b/app/javascript/dashboard/i18n/locale/fa/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "بیصدا کردن گفتگو",
+ "SNOOZE_CONVERSATION": "به تعویق انداختن مکالمه",
+ "RESOLVE_CONVERSATION": "حل مکالمه",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "تغییر اولویت",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/report.json b/app/javascript/dashboard/i18n/locale/fa/report.json
index 61630d9c8..b1a4aa3b7 100644
--- a/app/javascript/dashboard/i18n/locale/fa/report.json
+++ b/app/javascript/dashboard/i18n/locale/fa/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "نمای کلی برچسب ها",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "در حال دریافت اطلاعات...",
"NO_ENOUGH_DATA": "متاسفانه اطلاعات کافی دریافت نشد، لطفا بعدا دوباره امتحان کنید",
"DOWNLOAD_LABEL_REPORTS": "دانلود گزارش برچسب ها",
@@ -559,6 +560,7 @@
"INBOX": "صندوق ورودی",
"AGENT": "ایجنت",
"TEAM": "تیم",
+ "LABEL": "برچسب",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/fa/search.json b/app/javascript/dashboard/i18n/locale/fa/search.json
index 105e2a493..d2b9fbc8f 100644
--- a/app/javascript/dashboard/i18n/locale/fa/search.json
+++ b/app/javascript/dashboard/i18n/locale/fa/search.json
@@ -4,12 +4,14 @@
"ALL": "همه",
"CONTACTS": "مخاطبین",
"CONVERSATIONS": "گفتگوها",
- "MESSAGES": "پیامها"
+ "MESSAGES": "پیامها",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "مخاطبین",
"CONVERSATIONS": "گفتگوها",
- "MESSAGES": "پیامها"
+ "MESSAGES": "پیامها",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/fa/settings.json b/app/javascript/dashboard/i18n/locale/fa/settings.json
index a56dd85f3..4a037f3ad 100644
--- a/app/javascript/dashboard/i18n/locale/fa/settings.json
+++ b/app/javascript/dashboard/i18n/locale/fa/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "توکن دسترسی",
"NOTE": "از این توکن برای دسترسی از طریق API استفاده میشود",
- "COPY": "کپی"
+ "COPY": "کپی",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "آفلاین"
},
"SET_AVAILABILITY_SUCCESS": "در دسترس بودن با موفقیت تنظیم شد",
- "SET_AVAILABILITY_ERROR": "در دسترس بودن تنظیم نشد، لطفا دوباره امتحان کنید"
+ "SET_AVAILABILITY_ERROR": "در دسترس بودن تنظیم نشد، لطفا دوباره امتحان کنید",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "ایمیل شما",
@@ -280,6 +286,7 @@
"REPORTS": "گزارشات",
"SETTINGS": "تنظیمات",
"CONTACTS": "مخاطبین",
+ "ACTIVE": "فعال",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "نام شرکت",
"PLACEHOLDER": "شرکت ایران ناسیونال"
},
- "SUBMIT": "ثبت"
+ "SUBMIT": "ثبت",
+ "CANCEL": "انصراف"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/fi/agentBots.json b/app/javascript/dashboard/i18n/locale/fi/agentBots.json
index 10d307564..eae68ec01 100644
--- a/app/javascript/dashboard/i18n/locale/fi/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/fi/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Peruuta",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhookin URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Poista",
"TITLE": "Delete bot",
- "SUBMIT": "Poista",
- "CANCEL_BUTTON_TEXT": "Peruuta",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Vahvista poistaminen",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Kyllä, poista",
+ "NO": "Ei, säilytä"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Muokkaa",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Peruuta",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kuvaus",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhookin URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Peruuta",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/auditLogs.json b/app/javascript/dashboard/i18n/locale/fi/auditLogs.json
index 82a9bcf33..67a9ae2e8 100644
--- a/app/javascript/dashboard/i18n/locale/fi/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/fi/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/automation.json b/app/javascript/dashboard/i18n/locale/fi/automation.json
index 15ab7a157..7a8ab4ad6 100644
--- a/app/javascript/dashboard/i18n/locale/fi/automation.json
+++ b/app/javascript/dashboard/i18n/locale/fi/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mykistä Keskustelu",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Sähköposti",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Puhelinnumero",
+ "STATUS": "Tila",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/components.json b/app/javascript/dashboard/i18n/locale/fi/components.json
index 916b21a31..4270da3d8 100644
--- a/app/javascript/dashboard/i18n/locale/fi/components.json
+++ b/app/javascript/dashboard/i18n/locale/fi/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/contact.json b/app/javascript/dashboard/i18n/locale/fi/contact.json
index 2daab6519..969c21162 100644
--- a/app/javascript/dashboard/i18n/locale/fi/contact.json
+++ b/app/javascript/dashboard/i18n/locale/fi/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Yhteystiedot",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Viesti",
"SEND_MESSAGE": "Lähetä viesti",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Poista yhteystieto",
"DELETE_DIALOG": {
"TITLE": "Vahvista poistaminen",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Kyllä, poista",
"API": {
"SUCCESS_MESSAGE": "Yhteystiedon poistaminen onnistui",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "Sinä",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Ei hakua vastaavia yhteystietoja 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/fi/conversation.json b/app/javascript/dashboard/i18n/locale/fi/conversation.json
index dff777c92..3c91f2c2c 100644
--- a/app/javascript/dashboard/i18n/locale/fi/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/fi/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Ladataan keskusteluita",
"CANNOT_REPLY": "Et voi vastata, sillä",
"24_HOURS_WINDOW": "24h vastausikkuna",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Tätä keskustelua ei ole määritetty sinulle. Haluatko siirtää tämän keskustelun itsellesi?",
"ASSIGN_TO_ME": "Siirrä minulle",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24h vastausikkuna",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Olet vastaamassa:",
"REMOVE_SELECTION": "Poista valinnat",
"DOWNLOAD": "Lataa",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Ratkaise",
"REOPEN_ACTION": "Uudelleenavaa",
"OPEN_ACTION": "Avaa",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Näytä",
"CLOSE": "Sulje",
"DETAILS": "tiedot",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Poista"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Lähettäjä:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Keskustelutoiminnot",
"CONVERSATION_LABELS": "Keskustelutunnisteet",
"CONVERSATION_INFO": "Keskustelun Tiedot",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Yhteystiedon määritteet",
"PREVIOUS_CONVERSATION": "Edelliset keskustelut",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/fi/general.json b/app/javascript/dashboard/i18n/locale/fi/general.json
index 3a3e20797..2a2a267c7 100644
--- a/app/javascript/dashboard/i18n/locale/fi/general.json
+++ b/app/javascript/dashboard/i18n/locale/fi/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Etsi",
"EMPTY_STATE": "Tuloksia ei löytynyt"
- }
+ },
+ "CLOSE": "Sulje"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/generalSettings.json b/app/javascript/dashboard/i18n/locale/fi/generalSettings.json
index bd20cefb2..a25c64396 100644
--- a/app/javascript/dashboard/i18n/locale/fi/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/fi/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Tilin asetukset",
"SUBMIT": "Päivitä asetukset",
"BACK": "Takaisin",
@@ -8,6 +14,26 @@
"ERROR": "Asetuksia ei voitu päivittää, yritä uudelleen",
"SUCCESS": "Tilin asetukset päivitetty onnistuneesti"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Poista",
+ "DISMISS": "Peruuta",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Korjaa lomakkeen virheet",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Asetukset",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Tilin nimi",
"PLACEHOLDER": "Tilisi nimi",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Yrityksesi tukisähköposti",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Kuinka monen päivän jälkeen tukipyyntö suljetaan automaattisesti, mikäli sillä ei ole toimintaa",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Päivitä",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Keskustelun jatkuvuus sähköpostin kautta on käytössä tililläsi.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/fi/helpCenter.json b/app/javascript/dashboard/i18n/locale/fi/helpCenter.json
index 7c22f1a8a..2d4b4a482 100644
--- a/app/javascript/dashboard/i18n/locale/fi/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/fi/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json
index 2bda29b0d..90d823345 100644
--- a/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Kansion nimi",
"ADD_NAME": "Lisää kansiolle nimi",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Valitse arvo"
+ "PICK_A_VALUE": "Valitse arvo",
+ "CREATE_INBOX": "Luo saapet-kansio"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Lisätäksesi twitter-profiilin kanavaksesi, sinun tulee autentikoida twitter-tilisi klikkaamalla \"Kirjaudu sisään Twitterillä\" ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Asetukset",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Ota automaattinen delegointi käyttöön",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Viesti",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Sähköposti",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API-rajapinta"
+ "API": "API-rajapinta",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/integrations.json b/app/javascript/dashboard/i18n/locale/fi/integrations.json
index 27662156b..491f7c768 100644
--- a/app/javascript/dashboard/i18n/locale/fi/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/fi/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Peruuta"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Lähetä viesti...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Sinä",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Sinä",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Kirjoita viestisi...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Päivitä",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Ominaisuudet",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Kuvaus",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Ominaisuudet",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/fi/macros.json b/app/javascript/dashboard/i18n/locale/fi/macros.json
index b01ff3f5f..b7aab78d5 100644
--- a/app/javascript/dashboard/i18n/locale/fi/macros.json
+++ b/app/javascript/dashboard/i18n/locale/fi/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mykistä Keskustelu",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/report.json b/app/javascript/dashboard/i18n/locale/fi/report.json
index 5e56fcbd9..6f5f5cf58 100644
--- a/app/javascript/dashboard/i18n/locale/fi/report.json
+++ b/app/javascript/dashboard/i18n/locale/fi/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Ladataan kaaviotietoja...",
"NO_ENOUGH_DATA": "Emme ole saaneet tarpeeksi dataa raportin luomiseen, yritä myöhemmin uudelleen.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Edustajat",
"TEAM": "Tiimi",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/fi/search.json b/app/javascript/dashboard/i18n/locale/fi/search.json
index 13071d401..89368d3b6 100644
--- a/app/javascript/dashboard/i18n/locale/fi/search.json
+++ b/app/javascript/dashboard/i18n/locale/fi/search.json
@@ -4,12 +4,14 @@
"ALL": "Kaikki",
"CONTACTS": "Yhteystiedot",
"CONVERSATIONS": "Keskustelut",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Yhteystiedot",
"CONVERSATIONS": "Keskustelut",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/fi/settings.json b/app/javascript/dashboard/i18n/locale/fi/settings.json
index 35807f524..2488a8768 100644
--- a/app/javascript/dashboard/i18n/locale/fi/settings.json
+++ b/app/javascript/dashboard/i18n/locale/fi/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "Tätä tunnusta voidaan käyttää, jos olet rakentamassa API-pohjaista integraatiota",
- "COPY": "Kopioi"
+ "COPY": "Kopioi",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Sinun sähköpostiosoitteesi",
@@ -280,6 +286,7 @@
"REPORTS": "Raportit",
"SETTINGS": "Asetukset",
"CONTACTS": "Yhteystiedot",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Yrityksen nimi",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Lähetä"
+ "SUBMIT": "Lähetä",
+ "CANCEL": "Peruuta"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/fr/agentBots.json b/app/javascript/dashboard/i18n/locale/fr/agentBots.json
index fbf51e672..477eef743 100644
--- a/app/javascript/dashboard/i18n/locale/fr/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/fr/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Chargement de l'éditeur...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Les bots agents sont comme les membres les plus formidables de votre équipe. Ils peuvent gérer les petites tâches, vous permettant ainsi de vous concentrer sur ce qui compte vraiment. Essayez-les. Vous pouvez gérer vos bots depuis cette page ou en créer de nouveaux en cliquant sur le bouton 'Ajouter un bot'.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Nom du bot",
- "PLACEHOLDER": "Nommez votre robot.",
- "ERROR": "Le nom du bot est requis."
- },
- "DESCRIPTION": {
- "LABEL": "Description du bot",
- "PLACEHOLDER": "Que fait ce bot ?"
- },
- "BOT_CONFIG": {
- "ERROR": "Veuillez entrer votre configuration de bot CSML ci-dessus.",
- "API_ERROR": "Votre configuration CSML n'est pas valide, veuillez la corriger et réessayer."
- },
- "SUBMIT": "Valider et enregistrer"
+ "GLOBAL_BOT": "Bot système",
+ "GLOBAL_BOT_BADGE": "Système",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Avatar du bot supprimé avec succès",
+ "ERROR_DELETE": "Erreur lors de la suppression de l’avatar du bot, veuillez réessayer"
},
"BOT_CONFIGURATION": {
"TITLE": "Sélectionnez un bot d'agent",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Sélectionner le bot"
},
"ADD": {
- "TITLE": "Configurer le nouveau bot",
+ "TITLE": "Ajouter un bot",
"CANCEL_BUTTON_TEXT": "Annuler",
"API": {
"SUCCESS_MESSAGE": "Le bot a été ajouté avec succès.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Aucun Bots trouvé, vous pouvez créer un bot en cliquant sur le bouton 'Configurer un nouveau bot' ↗️",
+ "404": "Aucun bot trouvé. Vous pouvez en créer un en cliquant sur le bouton 'Ajouter un bot'.",
"LOADING": "Récupération des bots...",
- "TYPE": "Type de bot"
+ "TABLE_HEADER": {
+ "DETAILS": "Détails du bot",
+ "URL": "URL du Webhook"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Supprimer",
"TITLE": "Supprimer le bot",
- "SUBMIT": "Supprimer",
- "CANCEL_BUTTON_TEXT": "Annuler",
- "DESCRIPTION": "Êtes-vous sûr de vouloir supprimer ce bot ? Cette action est irréversible.",
+ "CONFIRM": {
+ "TITLE": "Confirmer la suppression",
+ "MESSAGE": "Êtes-vous sûr de vouloir supprimer {name} ?",
+ "YES": "Oui, supprimer",
+ "NO": "Non, Conserver"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot supprimé avec succès.",
"ERROR_MESSAGE": "Impossible de supprimer le bot. Veuillez réessayer."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Modifier",
- "LOADING": "Récupération des bots...",
"TITLE": "Modifier le bot",
- "CANCEL_BUTTON_TEXT": "Annuler",
"API": {
"SUCCESS_MESSAGE": "Bot mis à jour avec succès.",
"ERROR_MESSAGE": "Impossible de mettre à jour le bot, veuillez réessayer plus tard."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Jeton d'accès",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Avatar du bot"
+ },
+ "NAME": {
+ "LABEL": "Nom du bot",
+ "PLACEHOLDER": "Entrez le nom du bot",
+ "REQUIRED": "Le nom du bot est requis"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Que fait ce bot ?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "URL du Webhook",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "L'URL du webhook est requise"
+ },
+ "ERRORS": {
+ "NAME": "Le nom du bot est requis",
+ "URL": "L'URL du webhook est requise",
+ "VALID_URL": "Veuillez entrer une URL valide commençant par http:// ou https://"
+ },
+ "CANCEL": "Annuler",
+ "CREATE": "Créer un bot",
+ "UPDATE": "Mettre à jour le bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configurez un bot webhook pour l'intégration avec vos services personnalisés. Le bot recevra et traitera les événements des conversations et pourra y répondre."
+ },
"TYPES": {
- "WEBHOOK": "Webhook Bot",
- "CSML": "CSML Bot"
+ "WEBHOOK": "Webhook Bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/auditLogs.json b/app/javascript/dashboard/i18n/locale/fr/auditLogs.json
index d70ebde17..fde634766 100644
--- a/app/javascript/dashboard/i18n/locale/fr/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/fr/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/automation.json b/app/javascript/dashboard/i18n/locale/fr/automation.json
index 4c98f381c..c2c657a54 100644
--- a/app/javascript/dashboard/i18n/locale/fr/automation.json
+++ b/app/javascript/dashboard/i18n/locale/fr/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Aucun"
+ "NONE_OPTION": "Aucun",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation créée",
+ "CONVERSATION_UPDATED": "Conversation mise à jour",
+ "MESSAGE_CREATED": "Message créé",
+ "CONVERSATION_OPENED": "Conversation ouverte"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assigner à un agent",
+ "ASSIGN_TEAM": "Assigner une équipe",
+ "ADD_LABEL": "Ajouter une étiquette",
+ "REMOVE_LABEL": "Supprimer une étiquette",
+ "SEND_EMAIL_TO_TEAM": "Envoyer un e-mail à l'équipe",
+ "SEND_EMAIL_TRANSCRIPT": "Envoyer une transcription par e-mail",
+ "MUTE_CONVERSATION": "Mettre la conversation en sourdine",
+ "SNOOZE_CONVERSATION": "Clôturer la conversation",
+ "RESOLVE_CONVERSATION": "Résoudre la conversation",
+ "SEND_WEBHOOK_EVENT": "Envoyer un événement Webhook",
+ "SEND_ATTACHMENT": "Envoyer la pièce jointe",
+ "SEND_MESSAGE": "Envoyer un message",
+ "CHANGE_PRIORITY": "Modifier la priorité",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Type de message",
+ "MESSAGE_CONTAINS": "Le message contient",
+ "EMAIL": "Courriel",
+ "INBOX": "Boîte de réception",
+ "CONVERSATION_LANGUAGE": "Langue de la conversation",
+ "PHONE_NUMBER": "Numéro de téléphone",
+ "STATUS": "État",
+ "BROWSER_LANGUAGE": "Langue du navigateur",
+ "MAIL_SUBJECT": "Objet de l'email",
+ "COUNTRY_NAME": "Pays",
+ "REFERER_LINK": "Lien de référence",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Équipes",
+ "PRIORITY": "Priorité"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/components.json b/app/javascript/dashboard/i18n/locale/fr/components.json
index 6048fd367..41e6a1b0d 100644
--- a/app/javascript/dashboard/i18n/locale/fr/components.json
+++ b/app/javascript/dashboard/i18n/locale/fr/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "En savoir plus",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Heures",
+ "DAYS": "Jours",
+ "PLACEHOLDER": "Entrez la durée"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/contact.json b/app/javascript/dashboard/i18n/locale/fr/contact.json
index 31bf17529..c41f004b0 100644
--- a/app/javascript/dashboard/i18n/locale/fr/contact.json
+++ b/app/javascript/dashboard/i18n/locale/fr/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Envoyer un message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Supprimer le contact",
"DELETE_DIALOG": {
"TITLE": "Confirmer la suppression",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Oui, supprimer",
"API": {
"SUCCESS_MESSAGE": "Contact supprimé avec succès",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "Vous",
"SAVE": "Save note",
+ "EXPAND": "Développer",
+ "COLLAPSE": "Réduire",
+ "NO_NOTES": "Pas de notes, vous pouvez en ajouter depuis la page des détails du contact.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Aucun contact ne correspond à votre recherche 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/fr/conversation.json b/app/javascript/dashboard/i18n/locale/fr/conversation.json
index 3df832502..70d9014ac 100644
--- a/app/javascript/dashboard/i18n/locale/fr/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/fr/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Chargement des conversations",
"CANNOT_REPLY": "Vous ne pouvez pas répondre en raison de",
"24_HOURS_WINDOW": "Restriction de fenêtre de message de 24 heures",
+ "API_HOURS_WINDOW": "Vous ne pouvez répondre à cette conversation que dans un délai de {hours} heures",
"NOT_ASSIGNED_TO_YOU": "Cette conversation ne vous est pas assignée. Voulez-vous vous assigner cette conversation ?",
"ASSIGN_TO_ME": "M’assigner la conversation",
"TWILIO_WHATSAPP_CAN_REPLY": "Vous pouvez seulement répondre à cette conversation en utilisant un modèle de message en raison de",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Restriction de fenêtre de message de 24 heures",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "Ce compte Instagram a été migré vers la nouvelle boîte de réception du canal Instagram. Tous les nouveaux messages y apparaîtront. Vous ne pourrez plus envoyer de messages depuis cette conversation.",
"REPLYING_TO": "Vous répondez à :",
"REMOVE_SELECTION": "Supprimer la sélection",
"DOWNLOAD": "Télécharger",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Résoudre",
"REOPEN_ACTION": "Ré-ouvrir",
"OPEN_ACTION": "Ouvert",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Plus",
"CLOSE": "Fermer",
"DETAILS": "détails",
@@ -115,6 +118,11 @@
"FAILED": "Impossible de modifier la priorité. Veuillez réessayer."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Supprimer"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Marquer comme en attente",
"RESOLVED": "Marquer comme résolu",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assigner une étiquette",
"AGENTS_LOADING": "Chargement des agents...",
"ASSIGN_TEAM": "Assigner une équipe",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assignée à \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Étiquette attribuée avec succès",
"ASSIGN_LABEL_FAILED": "Échec de l'attribution de l'étiquette",
"CHANGE_TEAM": "L'équipe de conversation a été modifiée",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Le fichier dépasse la limite de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} pour les pièces jointes",
"MESSAGE_ERROR": "Impossible d'envoyer ce message, veuillez réessayer plus tard",
"SENT_BY": "Envoyé par:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Actions de conversation",
"CONVERSATION_LABELS": "Étiquettes de conversation",
"CONVERSATION_INFO": "Informations de la conversation",
+ "CONTACT_NOTES": "Notes du contact",
"CONTACT_ATTRIBUTES": "Attributs du contact",
"PREVIOUS_CONVERSATION": "Conversations précédentes",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/fr/general.json b/app/javascript/dashboard/i18n/locale/fr/general.json
index b25c8d702..eb09173c5 100644
--- a/app/javascript/dashboard/i18n/locale/fr/general.json
+++ b/app/javascript/dashboard/i18n/locale/fr/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Rechercher",
"EMPTY_STATE": "Aucun résultat trouvé"
- }
+ },
+ "CLOSE": "Fermer"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/generalSettings.json b/app/javascript/dashboard/i18n/locale/fr/generalSettings.json
index 94cc41331..5ba2a8767 100644
--- a/app/javascript/dashboard/i18n/locale/fr/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/fr/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "Vous avez dépassé la limite de conversation. Le plan Hacker autorise uniquement 500 conversations.",
+ "INBOXES": "Vous avez dépassé la limite de boîtes de réception. Le plan Hacker ne prend en charge que le chat en direct sur le site Web. Des boîtes de réception supplémentaires telles que l'email, WhatsApp, etc. nécessitent un plan payant.",
+ "AGENTS": "Vous avez dépassé la limite d'agents. Le plan Hacker permet uniquement 2 agents.",
+ "NON_ADMIN": "Veuillez contacter votre administrateur pour mettre à niveau le plan et continuer à utiliser toutes les fonctionnalités."
+ },
"TITLE": "Paramètres du compte",
"SUBMIT": "Mettre à jour les paramètres",
"BACK": "Précédent",
@@ -8,6 +14,26 @@
"ERROR": "Impossible de mettre à jour les paramètres, essayez à nouveau !",
"SUCCESS": "Paramètres du compte mis à jour avec succès"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Supprimer votre compte",
+ "NOTE": "Une fois que vous supprimez votre compte, toutes vos données seront supprimées.",
+ "BUTTON_TEXT": "Supprimer votre compte",
+ "CONFIRM": {
+ "TITLE": "Supprimer le compte",
+ "MESSAGE": "La suppression de votre compte est irréversible. Entrez votre nom de compte ci-dessous pour confirmer que vous souhaitez le supprimer définitivement.",
+ "BUTTON_TEXT": "Supprimer",
+ "DISMISS": "Annuler",
+ "PLACE_HOLDER": "Veuillez entrer {accountName} pour confirmer"
+ },
+ "SUCCESS": "Compte marqué pour suppression",
+ "FAILURE": "Impossible de supprimer le compte, essayez à nouveau !",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Compte programmé pour suppression",
+ "MESSAGE_MANUAL": "Ce compte est programmé pour suppression le {deletionDate}. Cette demande a été effectuée par un administrateur. Vous pouvez annuler la suppression avant cette date.",
+ "MESSAGE_INACTIVITY": "Ce compte est programmé pour suppression le {deletionDate} en raison de l'inactivité du compte. Vous pouvez annuler la suppression avant cette date.",
+ "CLEAR_BUTTON": "Annuler la suppression programmée"
+ }
+ },
"FORM": {
"ERROR": "Veuillez corriger les erreurs du formulaire",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID de compte",
"NOTE": "Cet identifiant est requis si vous construisez une intégration basée sur l'API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Résolution automatique des conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "La durée de résolution automatique doit être comprise entre 10 minutes et 999 jours",
+ "API": {
+ "SUCCESS": "Paramètres de résolution automatique mis à jour avec succès",
+ "ERROR": "Échec de la mise à jour des paramètres de résolution automatique"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "La conversation a été marquée comme résolue par le système en raison de 15 jours d'inactivité",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Nom du compte",
"PLACEHOLDER": "Votre nom de compte",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "L'adresse de courriel de support de votre entreprise",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclure les conversations non prises en charge",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Nombre de jours après qu'un ticket soit automatiquement résolu s'il n'y a pas d'activité",
+ "LABEL": "Durée d'inactivité avant résolution",
+ "HELP": "Durée après laquelle une conversation doit être automatiquement résolue s'il n'y a pas d'activité",
"PLACEHOLDER": "30",
- "ERROR": "Veuillez entrer une durée de résolution automatique valide (minimum 1 jour et maximum 999 jours)"
+ "ERROR": "La durée de résolution automatique doit être comprise entre 10 minutes et 999 jours",
+ "API": {
+ "SUCCESS": "Paramètres de résolution automatique mis à jour avec succès",
+ "ERROR": "Échec de la mise à jour des paramètres de résolution automatique"
+ },
+ "UPDATE_BUTTON": "Mettre à jour",
+ "MESSAGE_LABEL": "Message de résolution personnalisé",
+ "MESSAGE_PLACEHOLDER": "La conversation a été marquée comme résolue par le système en raison de 15 jours d'inactivité",
+ "MESSAGE_HELP": "Ce message est envoyé au client lorsque la conversation est automatiquement résolue par le système en raison d'une inactivité."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "La continuité des conversations avec les courriels est activée pour votre compte.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Une mise à jour {latestChatwootVersion} de Chatwoot est disponible. Veuillez mettre à jour votre instance.",
"LEARN_MORE": "En savoir plus",
"PAYMENT_PENDING": "Votre paiement est en attente. Merci de mettre à jour vos informations de paiement pour continuer à utiliser Chatwoot",
+ "UPGRADE": "Mettez à niveau pour continuer à utiliser Chatwoot",
"LIMITS_UPGRADE": "Votre compte a dépassé les limites d'utilisation, veuillez mettre à niveau votre plan pour continuer à utiliser Chatwoot",
"OPEN_BILLING": "Ouvrir la facturation"
},
diff --git a/app/javascript/dashboard/i18n/locale/fr/helpCenter.json b/app/javascript/dashboard/i18n/locale/fr/helpCenter.json
index 5a2e4e7ee..af3ba4da2 100644
--- a/app/javascript/dashboard/i18n/locale/fr/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/fr/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Le Slug est requis"
+ "ERROR": "Le Slug est requis",
+ "FORMAT_ERROR": "Veuillez saisir un identifiant valide, par exemple : guide-utilisateur"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json
index 3ba213111..5981e27e9 100644
--- a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Nom de la boîte de réception",
"ADD_NAME": "Ajouter un nom pour votre boîte de réception",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Choisir une valeur"
+ "PICK_A_VALUE": "Choisir une valeur",
+ "CREATE_INBOX": "Créer une boîte de réception"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continuer avec Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connectez votre profil Instagram",
+ "HELP": "Pour ajouter votre profil Instagram en tant que canal, vous devez authentifier votre profil Instagram en cliquant sur 'Continuer avec Instagram' ",
+ "ERROR_MESSAGE": "Une erreur est survenue lors de la connexion à Instagram, veuillez réessayer",
+ "ERROR_AUTH": "Une erreur est survenue lors de la connexion à Instagram, veuillez réessayer",
+ "NEW_INBOX_SUGGESTION": "Ce compte Instagram était précédemment lié à une autre boîte de réception et a maintenant été migré ici. Tous les nouveaux messages apparaîtront ici. L'ancienne boîte de réception ne pourra plus envoyer ni recevoir de messages pour ce compte.",
+ "DUPLICATE_INBOX_BANNER": "Ce compte Instagram a été migré vers la nouvelle boîte de réception du canal Instagram. Vous ne pourrez plus envoyer ni recevoir de messages Instagram depuis cette boîte de réception."
},
"TWITTER": {
"HELP": "Pour ajouter votre profil Twitter en tant que canal, vous devez lier votre profil Twitter en cliquant sur 'Se connecter avec Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Formulaire avant chat",
"BUSINESS_HOURS": "Heures de bureau",
"WIDGET_BUILDER": "Constructeur de Widget",
- "BOT_CONFIGURATION": "Configuration du bot"
+ "BOT_CONFIGURATION": "Configuration du bot",
+ "CSAT": "CSAT"
},
"SETTINGS": "Paramètres",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Activer la boîte de collecte des courriels",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Activer ou désactiver la boîte de collecte des courriels pour les nouvelles conversations",
"AUTO_ASSIGNMENT": "Activer l'assignation automatique",
- "ENABLE_CSAT": "Activer CSAT",
"SENDER_NAME_SECTION": "Activer le nom de l'agent dans l'e-mail",
- "ENABLE_CSAT_SUB_TEXT": "Activer/Désactiver l'enquête CSAT(satisfaction du client) après avoir résolu une conversation",
"SENDER_NAME_SECTION_TEXT": "Activer/Désactiver l'affichage du nom de l'agent dans l'e-mail, si désactivé, il affichera le nom de l'entreprise",
"ENABLE_CONTINUITY_VIA_EMAIL": "Activer la continuité de la conversation par e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Les conversations se poursuivront par courrier électronique si l'adresse e-mail du contact est disponible.",
@@ -568,6 +577,32 @@
"LABEL": "Les visiteurs doivent indiquer leur nom et leur courriel avant de commencer le chat"
}
},
+ "CSAT": {
+ "TITLE": "Activer CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contient",
+ "DOES_NOT_CONTAINS": "ne contient pas"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Définissez votre disponibilité",
"SUBTITLE": "Définissez votre disponibilité sur votre widget livechat",
@@ -753,7 +788,8 @@
"EMAIL": "Courriel",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "Canal API"
+ "API": "Canal API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/integrations.json b/app/javascript/dashboard/i18n/locale/fr/integrations.json
index c2fab372a..450d22b9b 100644
--- a/app/javascript/dashboard/i18n/locale/fr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/fr/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message mis à jour",
"WEBWIDGET_TRIGGERED": "Widget de discussion instantanée ouvert par l'utilisateur",
"CONTACT_CREATED": "Contact créé",
- "CONTACT_UPDATED": "Contact mis à jour"
+ "CONTACT_UPDATED": "Contact mis à jour",
+ "CONVERSATION_TYPING_ON": "Saisie de conversation activée",
+ "CONVERSATION_TYPING_OFF": "Saisie de conversation désactivée"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Oui, supprimer",
"CANCEL": "Annuler"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Envoyer un message...",
+ "EMPTY_MESSAGE": "Une erreur s'est produite lors de la génération de la réponse. Veuillez réessayer.",
"LOADER": "Captain is thinking",
"YOU": "Vous",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Résumer cette conversation",
+ "CONTENT": "Résumé des points clés de la conversation entre le client et l'agent de support, y compris les préoccupations et questions du client, ainsi que les solutions ou réponses fournies par l'agent de support"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggérer une réponse",
+ "CONTENT": "Analysez la demande du client et rédigez une réponse qui traite efficacement ses préoccupations ou questions. Assurez-vous que la réponse soit claire, concise et fournisse des informations utiles."
+ },
+ "RATE": {
+ "LABEL": "Évaluer cette conversation",
+ "CONTENT": "Revue de la conversation pour évaluer dans quelle mesure elle répond aux besoins du client. Partagez une note sur 5 en fonction du ton, de la clarté et de l'efficacité."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Vous",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Tapez votre message...",
+ "HEADER": "Terrain de jeu",
+ "DESCRIPTION": "Utilisez ce terrain de jeu pour envoyer des messages à votre assistant et vérifier s'il répond de manière précise, rapide et dans le ton que vous attendez.",
+ "CREDIT_NOTE": "Les messages envoyés ici compteront pour vos crédits Captain."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Mettre à jour",
+ "SECTIONS": {
+ "BASIC_INFO": "Informations de base",
+ "SYSTEM_MESSAGES": "Messages système",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Fonctionnalités",
+ "TOOLS": "Outils "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Nom",
+ "PLACEHOLDER": "Entrez le nom de l'assistant",
+ "ERROR": "Le nom est requis"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Entrez la description de l'assistant",
+ "ERROR": "La description est requise"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Entrez le nom du produit",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Message de bienvenue",
+ "PLACEHOLDER": "Entrez le message de bienvenue"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Message de transfert",
+ "PLACEHOLDER": "Entrez le message de transfert"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Message de résolution",
+ "PLACEHOLDER": "Entrez le message de résolution"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Entrez les instructions pour l'assistant"
+ },
"FEATURES": {
"TITLE": "Fonctionnalités",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Impossible de trouver l'assistant. Veuillez réessayer."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/fr/macros.json b/app/javascript/dashboard/i18n/locale/fr/macros.json
index 564630d3d..33c0117e0 100644
--- a/app/javascript/dashboard/i18n/locale/fr/macros.json
+++ b/app/javascript/dashboard/i18n/locale/fr/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Attribuer une équipe",
+ "ASSIGN_AGENT": "Attribuer un agent",
+ "ADD_LABEL": "Ajouter une étiquette",
+ "REMOVE_LABEL": "Supprimer une étiquette",
+ "REMOVE_ASSIGNED_TEAM": "Supprimer l’équipe assignée",
+ "SEND_EMAIL_TRANSCRIPT": "Envoyer une transcription par e-mail",
+ "MUTE_CONVERSATION": "Mettre la conversation en sourdine",
+ "SNOOZE_CONVERSATION": "Clôturer la conversation",
+ "RESOLVE_CONVERSATION": "Résoudre la conversation",
+ "SEND_ATTACHMENT": "Envoyer la pièce jointe",
+ "SEND_MESSAGE": "Envoyer un message",
+ "CHANGE_PRIORITY": "Modifier la priorité",
+ "ADD_PRIVATE_NOTE": "Ajouter une note privée",
+ "SEND_WEBHOOK_EVENT": "Envoyer un événement Webhook"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/report.json b/app/javascript/dashboard/i18n/locale/fr/report.json
index 4215d8417..0cf003018 100644
--- a/app/javascript/dashboard/i18n/locale/fr/report.json
+++ b/app/javascript/dashboard/i18n/locale/fr/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Présentation des étiquettes",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Chargement des données du graphique ...",
"NO_ENOUGH_DATA": "Nous n'avons pas reçu assez de points de données pour générer un rapport. Veuillez réessayer plus tard.",
"DOWNLOAD_LABEL_REPORTS": "Télécharger les rapports d'étiquettes",
@@ -559,6 +560,7 @@
"INBOX": "Boîte de réception",
"AGENT": "Agent",
"TEAM": "Équipes",
+ "LABEL": "Étiquettes",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/fr/search.json b/app/javascript/dashboard/i18n/locale/fr/search.json
index f0c308f7f..55b0ab530 100644
--- a/app/javascript/dashboard/i18n/locale/fr/search.json
+++ b/app/javascript/dashboard/i18n/locale/fr/search.json
@@ -4,12 +4,14 @@
"ALL": "Tous",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/fr/settings.json b/app/javascript/dashboard/i18n/locale/fr/settings.json
index d5dcf06dd..1f6dd95fd 100644
--- a/app/javascript/dashboard/i18n/locale/fr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/fr/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Jeton d'accès",
"NOTE": "Ce jeton peut être utilisé si vous construisez une intégration basée sur l'API",
- "COPY": "Copier"
+ "COPY": "Copier",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Hors ligne"
},
"SET_AVAILABILITY_SUCCESS": "La disponibilité a bien été définie",
- "SET_AVAILABILITY_ERROR": "Impossible de définir la disponibilité, veuillez réessayer"
+ "SET_AVAILABILITY_ERROR": "Impossible de définir la disponibilité, veuillez réessayer",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Votre adresse de courriel",
@@ -280,6 +286,7 @@
"REPORTS": "Rapports",
"SETTINGS": "Paramètres",
"CONTACTS": "Contacts",
+ "ACTIVE": "Actif",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Nom de la société",
"PLACEHOLDER": "Entreprises Wayne"
},
- "SUBMIT": "Envoyer"
+ "SUBMIT": "Envoyer",
+ "CANCEL": "Annuler"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/he/agentBots.json b/app/javascript/dashboard/i18n/locale/he/agentBots.json
index 87645d410..925836f35 100644
--- a/app/javascript/dashboard/i18n/locale/he/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/he/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "בוטים",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "חובה לתת שם לבוט."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "מה הבוט הזה עושה?"
- },
- "BOT_CONFIG": {
- "ERROR": "נא הכנס את הגדרות ה-CSML עבור הבוט שלך.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "אמת ושמור"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "בחר סוכן בוט",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "הגדר בוט חדש",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "ביטול",
"API": {
"SUCCESS_MESSAGE": "הבוט התווסף בהצלחה.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "כתובת אתר של Webhook"
+ }
},
"DELETE": {
"BUTTON_TEXT": "מחק",
"TITLE": "Delete bot",
- "SUBMIT": "מחק",
- "CANCEL_BUTTON_TEXT": "ביטול",
- "DESCRIPTION": "האם אתה בטוח שברצונך למחוק בוט זה? פעולה זו לא ניתנת לשחזור.",
+ "CONFIRM": {
+ "TITLE": "אשר מחיקה",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "כן, מחק",
+ "NO": "לא, השאר"
+ },
"API": {
"SUCCESS_MESSAGE": "הבוט נמחק בהצלחה.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "ערוך",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "ביטול",
"API": {
"SUCCESS_MESSAGE": "הבוט עודכן בהצלחה.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "אסימון",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "חובה לתת שם לבוט"
+ },
+ "DESCRIPTION": {
+ "LABEL": "תיאור",
+ "PLACEHOLDER": "מה הבוט הזה עושה?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "כתובת אתר של Webhook",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "חובה לתת שם לבוט",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "ביטול",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/auditLogs.json b/app/javascript/dashboard/i18n/locale/he/auditLogs.json
index 34450eb06..e52d31f86 100644
--- a/app/javascript/dashboard/i18n/locale/he/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/he/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/automation.json b/app/javascript/dashboard/i18n/locale/he/automation.json
index 03c5d0d93..31a7fb68c 100644
--- a/app/javascript/dashboard/i18n/locale/he/automation.json
+++ b/app/javascript/dashboard/i18n/locale/he/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "כלום"
+ "NONE_OPTION": "כלום",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "השיחה נוצרה",
+ "CONVERSATION_UPDATED": "השיחה עודכנה",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "השיחה נפתחה"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "השתק שיחה",
+ "SNOOZE_CONVERSATION": "נודניק שיחה",
+ "RESOLVE_CONVERSATION": "פתור שיחה",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "אימייל",
+ "INBOX": "תיבת הדואר הנכנס",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "מספר טלפון",
+ "STATUS": "מצב",
+ "BROWSER_LANGUAGE": "שפת דפדפן",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "מדינה",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "צוות",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/components.json b/app/javascript/dashboard/i18n/locale/he/components.json
index b57658b6b..d2855b661 100644
--- a/app/javascript/dashboard/i18n/locale/he/components.json
+++ b/app/javascript/dashboard/i18n/locale/he/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "למד עוד",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/contact.json b/app/javascript/dashboard/i18n/locale/he/contact.json
index dbec8858a..b18a83ef9 100644
--- a/app/javascript/dashboard/i18n/locale/he/contact.json
+++ b/app/javascript/dashboard/i18n/locale/he/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "איש קשר",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "הודעה",
"SEND_MESSAGE": "שלח הודעה",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "מחק איש קשר",
"DELETE_DIALOG": {
"TITLE": "אשר מחיקה",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "כן, מחק",
"API": {
"SUCCESS_MESSAGE": "איש הקשר נמחק בהצלחה",
@@ -544,6 +549,9 @@
"WROTE": "נכתב",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "אין אנשי קשר שתואמים לחיפוש שלך 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/he/conversation.json b/app/javascript/dashboard/i18n/locale/he/conversation.json
index af94c6271..ce1224c3a 100644
--- a/app/javascript/dashboard/i18n/locale/he/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/he/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "טוען שיחות",
"CANNOT_REPLY": "לא ניתן להשיב עקב",
"24_HOURS_WINDOW": "הגבלת חלון הודעות של 24 שעות",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "השיחה לא שייכת לך, האם תרצה לשייך אותה אליך?",
"ASSIGN_TO_ME": "שייך לעצמך",
"TWILIO_WHATSAPP_CAN_REPLY": "אתה יכול להשיב לשיחה זו רק באמצעות הודעת תבנית בשל",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "הגבלת חלון הודעות של 24 שעות",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "אתה משיב ל:",
"REMOVE_SELECTION": "הסר בחירה",
"DOWNLOAD": "הורד",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "פתרון",
"REOPEN_ACTION": "פתח מחדש",
"OPEN_ACTION": "פתח",
+ "MORE_ACTIONS": "More actions",
"OPEN": "עוד",
"CLOSE": "סגור",
"DETAILS": "פרטים",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "מחק"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "סמן כממתין",
"RESOLVED": "סמן כפתור",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "ההקצה תווית",
"AGENTS_LOADING": "טוען סוכנים...",
"ASSIGN_TEAM": "שייך צוות",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "מזהה שיחה {conversationId} קושר ל {agentName}",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "סמן משימה כבוצעה בהצלחה",
"ASSIGN_LABEL_FAILED": "סמן משימה כנכשלה",
"CHANGE_TEAM": "שיחת קבוצה השתנתה",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "הקובץ גדול מ{MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE}MB מגבלת העלאה",
"MESSAGE_ERROR": "לא ניתן לשלוח הודעה, אנא נסה שוב מאוחר יותר",
"SENT_BY": "נשלח על ידי:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "פעולות בשיחה",
"CONVERSATION_LABELS": "תוויות שיחה",
"CONVERSATION_INFO": "מידע על שיחה",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "תכונות יצירת קשר",
"PREVIOUS_CONVERSATION": "שיחות קודמות",
"MACROS": "מאקרו",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/he/general.json b/app/javascript/dashboard/i18n/locale/he/general.json
index 7ac10d6a1..5ee9b1b6a 100644
--- a/app/javascript/dashboard/i18n/locale/he/general.json
+++ b/app/javascript/dashboard/i18n/locale/he/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "חפש",
"EMPTY_STATE": "לא נמצאו תוצאות"
- }
+ },
+ "CLOSE": "סגור"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/generalSettings.json b/app/javascript/dashboard/i18n/locale/he/generalSettings.json
index 699aa9432..0a677534a 100644
--- a/app/javascript/dashboard/i18n/locale/he/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/he/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "הגדרות חשבון",
"SUBMIT": "עדכן הגדרות",
"BACK": "חזור",
@@ -8,6 +14,26 @@
"ERROR": "לא ניתן היה לעדכן את ההגדרות, נסה שוב!",
"SUCCESS": "הגדרות החשבון עודכנו בהצלחה"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "מחק",
+ "DISMISS": "ביטול",
+ "PLACE_HOLDER": "אנא הקלד {accountName} כדי לאשר"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": ".",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "אנא תקן שגיאות בטופס",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "מזהה חשבון",
"NOTE": "מזהה זה נדרש אם אתה בונה אינטגרציה מבוססת API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "שם החשבון",
"PLACEHOLDER": "שם החשבון שלך",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "דוא\"ל התמיכה של החברה שלך",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "מספר הימים לאחר כרטיס אמור להיפתר אוטומטית אם אין פעילות",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "אנא הזן משך פתרון אוטומטי חוקי (מינימום יום אחד ומקסימום 999 ימים)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "עדכן",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "רציפות השיחה עם הודעות אימייל מופעלת עבור החשבון שלך.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "עדכון {latestChatwootVersion} עבור Chatwoot זמין. אנא עדכן את המופע שלך.",
"LEARN_MORE": "למד עוד",
"PAYMENT_PENDING": "התשלום שלך ממתין. אנא עדכן את פרטי התשלום שלך כדי להמשיך להשתמש ב-Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "החשבון שלך חרג ממגבלות השימוש. אנא שדרג את המינוי שלך כדי להמשיך להשתמש ב-צ'אטווט",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/he/helpCenter.json b/app/javascript/dashboard/i18n/locale/he/helpCenter.json
index 61cf7deeb..c9edd76d5 100644
--- a/app/javascript/dashboard/i18n/locale/he/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/he/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "שבלול",
"PLACEHOLDER": "user-guide",
- "ERROR": "נדרש שבלול"
+ "ERROR": "נדרש שבלול",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json
index c5093d489..262628cbf 100644
--- a/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "שם תיבת הדואר הנכנס",
"ADD_NAME": "הוסף שם לתיבת הדואר הנכנס שלך",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "בחר ערך"
+ "PICK_A_VALUE": "בחר ערך",
+ "CREATE_INBOX": "צור תיבת דואר נכנס"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "כדי להוסיף את פרופיל הטוויטר שלך כערוץ, עליך לאמת את פרופיל הטוויטר שלך על ידי לחיצה על 'היכנס באמצעות טוויטר' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "טופס צ'אט מקדים",
"BUSINESS_HOURS": "שעות פעילות",
"WIDGET_BUILDER": "בונה יישומונים",
- "BOT_CONFIGURATION": "הגדרות בוט"
+ "BOT_CONFIGURATION": "הגדרות בוט",
+ "CSAT": "CSAT"
},
"SETTINGS": "הגדרות",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "אפשר תיבת איסוף דוא\"ל",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "הפעל או השבת את תיבת איסוף הדוא\"ל בשיחה חדשה",
"AUTO_ASSIGNMENT": "אפשר הקצאה אוטומטית",
- "ENABLE_CSAT": "אפשר CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "הפעל/השבת סקר CSAT (שביעות רצון לקוחות) לאחר פתרון שיחה",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "אפשר המשך שיחה באמצעות הדוא\"ל",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "שיחות ימשיכו באמצעות הדוא\"ל אם לאיש הקשר קיימת כתובת דוא\"ל תקנית.",
@@ -568,6 +577,32 @@
"LABEL": "המבקרים צריכים לספק את שמם וכתובת האימייל שלהם לפני תחילת הצ'אט"
}
},
+ "CSAT": {
+ "TITLE": "אפשר CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "הודעה",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "מכיל",
+ "DOES_NOT_CONTAINS": "לא מכיל"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "הגדר את הזמינות שלך",
"SUBTITLE": "הגדר את הזמינות שלך בווידג'ט הצ'אט החי שלך",
@@ -753,7 +788,8 @@
"EMAIL": "אימייל",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "ערוץ API"
+ "API": "ערוץ API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/integrations.json b/app/javascript/dashboard/i18n/locale/he/integrations.json
index 51fd8bb66..6ec0bef03 100644
--- a/app/javascript/dashboard/i18n/locale/he/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/he/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "ההודעה עודכנה",
"WEBWIDGET_TRIGGERED": "ווידג'ט צ'אט חי נפתח על ידי המשתמש",
"CONTACT_CREATED": "צור קשר",
- "CONTACT_UPDATED": "איש קשר עודכן"
+ "CONTACT_UPDATED": "איש קשר עודכן",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "ביטול"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "טייס משנה",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "שלח הודעה...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "הקלד הודעה...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "עדכן",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "מאפיינים",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "שם",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "תיאור",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "מאפיינים",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/he/macros.json b/app/javascript/dashboard/i18n/locale/he/macros.json
index 6b567fe3d..d5fb1a7de 100644
--- a/app/javascript/dashboard/i18n/locale/he/macros.json
+++ b/app/javascript/dashboard/i18n/locale/he/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "השתק שיחה",
+ "SNOOZE_CONVERSATION": "נודניק שיחה",
+ "RESOLVE_CONVERSATION": "פתור שיחה",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/report.json b/app/javascript/dashboard/i18n/locale/he/report.json
index b9654aceb..f28acf119 100644
--- a/app/javascript/dashboard/i18n/locale/he/report.json
+++ b/app/javascript/dashboard/i18n/locale/he/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "סקירת תוויות",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "טוען נתוני תרשים...",
"NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.",
"DOWNLOAD_LABEL_REPORTS": "הורד דוחות תווית",
@@ -559,6 +560,7 @@
"INBOX": "תיבת הדואר הנכנס",
"AGENT": "סוכן",
"TEAM": "צוות",
+ "LABEL": "תווית",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/he/search.json b/app/javascript/dashboard/i18n/locale/he/search.json
index 9622f08d7..38ff7d389 100644
--- a/app/javascript/dashboard/i18n/locale/he/search.json
+++ b/app/javascript/dashboard/i18n/locale/he/search.json
@@ -4,12 +4,14 @@
"ALL": "הכל",
"CONTACTS": "איש קשר",
"CONVERSATIONS": "שיחות",
- "MESSAGES": "הודעות"
+ "MESSAGES": "הודעות",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "איש קשר",
"CONVERSATIONS": "שיחות",
- "MESSAGES": "הודעות"
+ "MESSAGES": "הודעות",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/he/settings.json b/app/javascript/dashboard/i18n/locale/he/settings.json
index 452edfc8f..883441eac 100644
--- a/app/javascript/dashboard/i18n/locale/he/settings.json
+++ b/app/javascript/dashboard/i18n/locale/he/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "אסימון",
"NOTE": "משמש לחיבורי API",
- "COPY": "עותק"
+ "COPY": "עותק",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "לא מחובר"
},
"SET_AVAILABILITY_SUCCESS": "זמינות הוגדרה בהצלחה",
- "SET_AVAILABILITY_ERROR": "לא ניתן להגדיר זמינות, אנא נסה שנית"
+ "SET_AVAILABILITY_ERROR": "לא ניתן להגדיר זמינות, אנא נסה שנית",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "כתובת הדוא\"ל שלך",
@@ -280,6 +286,7 @@
"REPORTS": "דיווחים",
"SETTINGS": "הגדרות",
"CONTACTS": "איש קשר",
+ "ACTIVE": "פעיל",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "שם החברה",
"PLACEHOLDER": "וויין אנטרפרייז"
},
- "SUBMIT": "שלח"
+ "SUBMIT": "שלח",
+ "CANCEL": "ביטול"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/hi/agentBots.json b/app/javascript/dashboard/i18n/locale/hi/agentBots.json
index 41b8fcb1b..d3a0bb991 100644
--- a/app/javascript/dashboard/i18n/locale/hi/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/hi/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Delete",
"TITLE": "Delete bot",
- "SUBMIT": "Delete",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancel",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/auditLogs.json b/app/javascript/dashboard/i18n/locale/hi/auditLogs.json
index 35c054fa2..df236f5b5 100644
--- a/app/javascript/dashboard/i18n/locale/hi/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/hi/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/automation.json b/app/javascript/dashboard/i18n/locale/hi/automation.json
index bb4946416..86ec0b58b 100644
--- a/app/javascript/dashboard/i18n/locale/hi/automation.json
+++ b/app/javascript/dashboard/i18n/locale/hi/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/components.json b/app/javascript/dashboard/i18n/locale/hi/components.json
index 99d5bce1f..dea9e6b1a 100644
--- a/app/javascript/dashboard/i18n/locale/hi/components.json
+++ b/app/javascript/dashboard/i18n/locale/hi/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/contact.json b/app/javascript/dashboard/i18n/locale/hi/contact.json
index 5ff7fb0fd..d50af43d7 100644
--- a/app/javascript/dashboard/i18n/locale/hi/contact.json
+++ b/app/javascript/dashboard/i18n/locale/hi/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Confirm Deletion",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/hi/conversation.json b/app/javascript/dashboard/i18n/locale/hi/conversation.json
index 6cfe9d082..c047f17ad 100644
--- a/app/javascript/dashboard/i18n/locale/hi/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/hi/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/hi/general.json b/app/javascript/dashboard/i18n/locale/hi/general.json
index 78e97db90..129fb239a 100644
--- a/app/javascript/dashboard/i18n/locale/hi/general.json
+++ b/app/javascript/dashboard/i18n/locale/hi/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/generalSettings.json b/app/javascript/dashboard/i18n/locale/hi/generalSettings.json
index 9ad4e4b57..c0c4d247d 100644
--- a/app/javascript/dashboard/i18n/locale/hi/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hi/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "Cancel",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/hi/helpCenter.json b/app/javascript/dashboard/i18n/locale/hi/helpCenter.json
index 8df92702e..9c6ad374c 100644
--- a/app/javascript/dashboard/i18n/locale/hi/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/hi/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json
index c3b887c2c..5e7ac5a26 100644
--- a/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/integrations.json b/app/javascript/dashboard/i18n/locale/hi/integrations.json
index ca8e2cb75..bd79e81f3 100644
--- a/app/javascript/dashboard/i18n/locale/hi/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hi/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "रद्द करें"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/hi/macros.json b/app/javascript/dashboard/i18n/locale/hi/macros.json
index 95e02fe94..d22744190 100644
--- a/app/javascript/dashboard/i18n/locale/hi/macros.json
+++ b/app/javascript/dashboard/i18n/locale/hi/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/report.json b/app/javascript/dashboard/i18n/locale/hi/report.json
index e176d9147..18f1ed14b 100644
--- a/app/javascript/dashboard/i18n/locale/hi/report.json
+++ b/app/javascript/dashboard/i18n/locale/hi/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/hi/search.json b/app/javascript/dashboard/i18n/locale/hi/search.json
index e6e6edbe7..09c22ae3d 100644
--- a/app/javascript/dashboard/i18n/locale/hi/search.json
+++ b/app/javascript/dashboard/i18n/locale/hi/search.json
@@ -4,12 +4,14 @@
"ALL": "All",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/hi/settings.json b/app/javascript/dashboard/i18n/locale/hi/settings.json
index a05b20d4c..6a9cbf229 100644
--- a/app/javascript/dashboard/i18n/locale/hi/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hi/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/hr/agentBots.json b/app/javascript/dashboard/i18n/locale/hr/agentBots.json
index 435dd9956..545a7a57e 100644
--- a/app/javascript/dashboard/i18n/locale/hr/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/hr/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Botovi",
"LOADING_EDITOR": "Otvaranje Editora...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Naziv Bota",
- "PLACEHOLDER": "Naziv Bota.",
- "ERROR": "Potrebno je unijeti ime Bota."
- },
- "DESCRIPTION": {
- "LABEL": "Opis Bota",
- "PLACEHOLDER": "Što ovaj Bot radi?"
- },
- "BOT_CONFIG": {
- "ERROR": "Unesi iznad svoju CSML bot konfiguraciju.",
- "API_ERROR": "Unesena CSML konfiguracija nije ispravna, molimo ispravite i ponovno unesite."
- },
- "SUBMIT": "Validacija i pohrana"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Izaberi agentskog bota",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Izaberi Bota"
},
"ADD": {
- "TITLE": "Konfiguriraj novog bota",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Odustani",
"API": {
"SUCCESS_MESSAGE": "Uspješno dodan Bot.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Nije pronađen nijedan Bot, možeš kreirati Bota koristeći gumb 'Konfiguriraj novog bota' ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Dohvat Botova...",
- "TYPE": "Vrsta Bota"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Izbriši",
"TITLE": "Izbriši Bota",
- "SUBMIT": "Izbriši",
- "CANCEL_BUTTON_TEXT": "Odustani",
- "DESCRIPTION": "Jeste li sigurni da želite izbrisati ovog bota? Akciju nije moguće poništiti.",
+ "CONFIRM": {
+ "TITLE": "Potvrdi brisanje",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot uspješno izbrisan.",
"ERROR_MESSAGE": "Nije moguće izbrisati bota, molimo pokušajte ponovno."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Uredi",
- "LOADING": "Dohvat Botova...",
"TITLE": "Uredi Bota",
- "CANCEL_BUTTON_TEXT": "Odustani",
"API": {
"SUCCESS_MESSAGE": "Bot uspješno izbrisan.",
"ERROR_MESSAGE": "Nije moguće ažurirati bota, molimo pokušajte ponovno."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Pristupni token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Naziv Bota",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Potrebno je unijeti ime Bota"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Što ovaj Bot radi?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Potrebno je unijeti ime Bota",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Odustani",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook Bot",
- "CSML": "CSML Bot"
+ "WEBHOOK": "Webhook Bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/auditLogs.json b/app/javascript/dashboard/i18n/locale/hr/auditLogs.json
index 8f33b1e59..12601fadf 100644
--- a/app/javascript/dashboard/i18n/locale/hr/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/hr/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/automation.json b/app/javascript/dashboard/i18n/locale/hr/automation.json
index e61a9eef3..0f0bdddbe 100644
--- a/app/javascript/dashboard/i18n/locale/hr/automation.json
+++ b/app/javascript/dashboard/i18n/locale/hr/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Nijedno"
+ "NONE_OPTION": "Nijedno",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Promjena prioriteta",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Tim",
+ "PRIORITY": "Prioritet"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/components.json b/app/javascript/dashboard/i18n/locale/hr/components.json
index 26f1c8f51..cd32e5822 100644
--- a/app/javascript/dashboard/i18n/locale/hr/components.json
+++ b/app/javascript/dashboard/i18n/locale/hr/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/contact.json b/app/javascript/dashboard/i18n/locale/hr/contact.json
index d772deab2..01094d599 100644
--- a/app/javascript/dashboard/i18n/locale/hr/contact.json
+++ b/app/javascript/dashboard/i18n/locale/hr/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontakti",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Poruka",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Potvrdi brisanje",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "napisao/la",
"YOU": "Vi",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/hr/conversation.json b/app/javascript/dashboard/i18n/locale/hr/conversation.json
index 381478c2a..ada317045 100644
--- a/app/javascript/dashboard/i18n/locale/hr/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/hr/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Nije moguće promijeniti prioritet. Molim, pokušajte kasnije."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Izbriši"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/hr/general.json b/app/javascript/dashboard/i18n/locale/hr/general.json
index f6cab3dae..fae150ec8 100644
--- a/app/javascript/dashboard/i18n/locale/hr/general.json
+++ b/app/javascript/dashboard/i18n/locale/hr/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "Nisu pronađeni rezultati"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/generalSettings.json b/app/javascript/dashboard/i18n/locale/hr/generalSettings.json
index 3bffa9a61..e88423779 100644
--- a/app/javascript/dashboard/i18n/locale/hr/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hr/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Izbriši",
+ "DISMISS": "Odustani",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/hr/helpCenter.json b/app/javascript/dashboard/i18n/locale/hr/helpCenter.json
index 0f618af54..24a78281c 100644
--- a/app/javascript/dashboard/i18n/locale/hr/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/hr/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json
index 35b40960b..836736ef7 100644
--- a/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Poruka",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "sadrži",
+ "DOES_NOT_CONTAINS": "ne sadrži"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/integrations.json b/app/javascript/dashboard/i18n/locale/hr/integrations.json
index 484f7a2ae..89954c4e2 100644
--- a/app/javascript/dashboard/i18n/locale/hr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hr/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Da, izbriši",
"CANCEL": "Odustani"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Vi",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Vi",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Unesite svoju poruku...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Ime",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/hr/macros.json b/app/javascript/dashboard/i18n/locale/hr/macros.json
index 23ae98d8b..57f06dfd4 100644
--- a/app/javascript/dashboard/i18n/locale/hr/macros.json
+++ b/app/javascript/dashboard/i18n/locale/hr/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Dodijeli tim",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Promjena prioriteta",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/report.json b/app/javascript/dashboard/i18n/locale/hr/report.json
index eb368ccea..2ca551438 100644
--- a/app/javascript/dashboard/i18n/locale/hr/report.json
+++ b/app/javascript/dashboard/i18n/locale/hr/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Tim",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/hr/search.json b/app/javascript/dashboard/i18n/locale/hr/search.json
index 323473dd0..9c54b01bc 100644
--- a/app/javascript/dashboard/i18n/locale/hr/search.json
+++ b/app/javascript/dashboard/i18n/locale/hr/search.json
@@ -4,12 +4,14 @@
"ALL": "Sve",
"CONTACTS": "Kontakti",
"CONVERSATIONS": "Razgovori",
- "MESSAGES": "Poruke"
+ "MESSAGES": "Poruke",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakti",
"CONVERSATIONS": "Razgovori",
- "MESSAGES": "Poruke"
+ "MESSAGES": "Poruke",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/hr/settings.json b/app/javascript/dashboard/i18n/locale/hr/settings.json
index e46b08394..61ccdccb0 100644
--- a/app/javascript/dashboard/i18n/locale/hr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hr/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Pristupni token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Kopiraj"
+ "COPY": "Kopiraj",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Naziv tvrtke",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Pošalji"
+ "SUBMIT": "Pošalji",
+ "CANCEL": "Odustani"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/hu/agentBots.json b/app/javascript/dashboard/i18n/locale/hu/agentBots.json
index f49125547..9e01f7629 100644
--- a/app/javascript/dashboard/i18n/locale/hu/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/hu/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Botok",
"LOADING_EDITOR": "Szerkesztő betöltése...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot neve",
- "PLACEHOLDER": "Nevezd el a botodat.",
- "ERROR": "Bot név megadása kötelező."
- },
- "DESCRIPTION": {
- "LABEL": "Bot leírás",
- "PLACEHOLDER": "Mit csinál ez a bot?"
- },
- "BOT_CONFIG": {
- "ERROR": "Add meg a CSML bot konfigurációt feljebb.",
- "API_ERROR": "A CSML konfigurációja érvénytelen. Kérjük, javítsa ki és próbálja meg újra."
- },
- "SUBMIT": "Validáció és mentés"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "Rendszer",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Válassz ügynököt",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Válassza ki a botot"
},
"ADD": {
- "TITLE": "Új bot beállítása",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Mégse",
"API": {
"SUCCESS_MESSAGE": "Bot hozzáadva.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Nem találtunk botokat. A 'Új bot konfigurálása' gombra kattintva hozhat létre botot ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Botok hívása...",
- "TYPE": "Bot típus"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Törlés",
"TITLE": "Bot törlése",
- "SUBMIT": "Törlés",
- "CANCEL_BUTTON_TEXT": "Mégse",
- "DESCRIPTION": "Biztosan törölni szeretnéd ezt a botot? Ez a művelet visszafordíthatatlan.",
+ "CONFIRM": {
+ "TITLE": "Törlés megerősítése",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Igen, Törlés",
+ "NO": "Nem, Mégse"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot törölve.",
"ERROR_MESSAGE": "Nem sikerült törölni a botot. Kérjük, próbálja újra."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Szerkesztés",
- "LOADING": "Botok hívása...",
"TITLE": "Bot szerkesztése",
- "CANCEL_BUTTON_TEXT": "Mégse",
"API": {
"SUCCESS_MESSAGE": "Bot frissítve.",
"ERROR_MESSAGE": "Nem tudta frissíteni a botot. Kérjük, próbálja újra."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Hozzáférési kulcs",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot neve",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot név megadása kötelező"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Leírás",
+ "PLACEHOLDER": "Mit csinál ez a bot?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot név megadása kötelező",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Mégse",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/auditLogs.json b/app/javascript/dashboard/i18n/locale/hu/auditLogs.json
index 1299c343e..72a561b84 100644
--- a/app/javascript/dashboard/i18n/locale/hu/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/hu/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/automation.json b/app/javascript/dashboard/i18n/locale/hu/automation.json
index ac5d9957f..72b5aabe3 100644
--- a/app/javascript/dashboard/i18n/locale/hu/automation.json
+++ b/app/javascript/dashboard/i18n/locale/hu/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Nincs"
+ "NONE_OPTION": "Nincs",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Beszélgetés létrehozva",
+ "CONVERSATION_UPDATED": "Beszélgetés frissítve",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Beszélgetés elnémítása",
+ "SNOOZE_CONVERSATION": "Beszélgetés alvómódba",
+ "RESOLVE_CONVERSATION": "Beszélgetés megoldása",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Prioritás megváltoztatása",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "E-mail",
+ "INBOX": "Fiók",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Telefonszám",
+ "STATUS": "Státusz",
+ "BROWSER_LANGUAGE": "Böngésző nyelve",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Ország",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Csapat",
+ "PRIORITY": "Prioritás"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/components.json b/app/javascript/dashboard/i18n/locale/hu/components.json
index 2b57c01e9..f16dacaf8 100644
--- a/app/javascript/dashboard/i18n/locale/hu/components.json
+++ b/app/javascript/dashboard/i18n/locale/hu/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Tudj meg többet",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/contact.json b/app/javascript/dashboard/i18n/locale/hu/contact.json
index 98b4d811f..5da9fe661 100644
--- a/app/javascript/dashboard/i18n/locale/hu/contact.json
+++ b/app/javascript/dashboard/i18n/locale/hu/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontaktok",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Üzenet",
"SEND_MESSAGE": "Üzenet elküldése",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Kontakt törlése",
"DELETE_DIALOG": {
"TITLE": "Törlés megerősítése",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Igen, Törlés",
"API": {
"SUCCESS_MESSAGE": "Kontakt sikeresen törölve",
@@ -544,6 +549,9 @@
"WROTE": "írta",
"YOU": "Ön",
"SAVE": "Save note",
+ "EXPAND": "Kiegészítés",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Nincs a keresésnek megfelelő kontakt 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/hu/conversation.json b/app/javascript/dashboard/i18n/locale/hu/conversation.json
index 2762f87bf..6fe483cf3 100644
--- a/app/javascript/dashboard/i18n/locale/hu/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/hu/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Beszélgetések betöltése",
"CANNOT_REPLY": "Nem tudunk válaszolni, mivel",
"24_HOURS_WINDOW": "24 órás üzeneti ablak megkötés",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Ez a beszélgetés nincs hozzádrendelve. Szeretnéd magadhoz rendelni?",
"ASSIGN_TO_ME": "Hozzárendelés magamhoz",
"TWILIO_WHATSAPP_CAN_REPLY": "Erre a beszélgetésre csak konzerv válasszal válaszolhatsz, mert",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 órás üzeneti ablak megkötés",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Neki válaszolsz:",
"REMOVE_SELECTION": "Kijelölés törlése",
"DOWNLOAD": "Letöltés",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Megoldva",
"REOPEN_ACTION": "Újranyitás",
"OPEN_ACTION": "Megnyitás",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Tovább",
"CLOSE": "Bezárás",
"DETAILS": "részletek",
@@ -115,6 +118,11 @@
"FAILED": "Nem sikerült megváltoztatni a prioritást. Kérlek, próbáld újra."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Törlés"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Függőben levőként megjelölés",
"RESOLVED": "Megjelölés megoldottként",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Cimke hozzáadása",
"AGENTS_LOADING": "Ügynökök betöltése...",
"ASSIGN_TEAM": "Csapat hozzárendelése",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Címke sikeresen hozzárendelve",
"ASSIGN_LABEL_FAILED": "Címke hozzárendelése sikertelen",
"CHANGE_TEAM": "A beszélgetés csapata megváltozott",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "A file mérete meghaladja a {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} limitet",
"MESSAGE_ERROR": "Nem tudsz üzenetet küldeni, kérlek, próbáld újra",
"SENT_BY": "Küldő:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Beszélgetés Műveletek",
"CONVERSATION_LABELS": "Beszélgetés cimkék",
"CONVERSATION_INFO": "Beszélgetés Információk",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Kontakt Tulajdonságok",
"PREVIOUS_CONVERSATION": "Korábbi beszélgetések",
"MACROS": "Makrók",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/hu/general.json b/app/javascript/dashboard/i18n/locale/hu/general.json
index b92df5935..c002d83da 100644
--- a/app/javascript/dashboard/i18n/locale/hu/general.json
+++ b/app/javascript/dashboard/i18n/locale/hu/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Keresés",
"EMPTY_STATE": "Nincs találat"
- }
+ },
+ "CLOSE": "Bezárás"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/generalSettings.json b/app/javascript/dashboard/i18n/locale/hu/generalSettings.json
index bbfa9e53a..9e52f1585 100644
--- a/app/javascript/dashboard/i18n/locale/hu/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hu/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Fiókbeállítások",
"SUBMIT": "Beállítások frissítése",
"BACK": "Vissza",
@@ -8,6 +14,26 @@
"ERROR": "Beállítás frissítés sikertelen, kérjük próbáld később!",
"SUCCESS": "Fiókbeállítások frissítve"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Törlés",
+ "DISMISS": "Mégse",
+ "PLACE_HOLDER": "Kérlek gépeld be, hogy {accountName} a megerősítéshez"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Kérjük javítsd ki az űrlaphibákat",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Fiók Azonosító",
"NOTE": "Ez a személyazonosság akkor használható, ha API-alapú integrációt építesz"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Fióknév",
"PLACEHOLDER": "A fiókneved",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "A vállalati támogatási e-mailcímed",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "A napok száma, mely után a ticketek automatikusan megoldódnak, ha nincs aktivitás",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Kérjük helyes auto feloldási időszakot adj meg (minimum 1 nap, maximum 999 nap)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Frissítés",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "A beszélgetésfolytonosság e-maillel már elérhető a fiókodban.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Egy frissítés elérhető a Chatwoothoz {latestChatwootVersion}. Kérjük frissítsd a telepítésed.",
"LEARN_MORE": "Tudj meg többet",
"PAYMENT_PENDING": "A fizetésed folyamatban van. Kérlek, frissítsd fizetési adataitat a Chatwoot használatának folytatásához",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "A fiókod túllépte a használati korlátokat. Kérjük, frissítsd tervedet a Chatwoot használatának folytatásához",
"OPEN_BILLING": "Számlázási beállítások megnyitása"
},
diff --git a/app/javascript/dashboard/i18n/locale/hu/helpCenter.json b/app/javascript/dashboard/i18n/locale/hu/helpCenter.json
index 356c5ff9b..65b5155e4 100644
--- a/app/javascript/dashboard/i18n/locale/hu/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/hu/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Érme megadása kötelező"
+ "ERROR": "Érme megadása kötelező",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json
index 72b3b5d0a..15ee5d45d 100644
--- a/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Fiók név",
"ADD_NAME": "Adj nevet a fiókodnak",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Válassz értéket"
+ "PICK_A_VALUE": "Válassz értéket",
+ "CREATE_INBOX": "Fiók létrehozása"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Ahhoz hogy hozzáadd a twitter profilodat egy csatornaként, azonosítanod kell a Twitter fiókodat a 'Belépés Twitterrel' gomb megnyomásával ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Chat előtti űrlap",
"BUSINESS_HOURS": "Nyitvatartás",
"WIDGET_BUILDER": "Widget építő",
- "BOT_CONFIGURATION": "Bot konfiguráció"
+ "BOT_CONFIGURATION": "Bot konfiguráció",
+ "CSAT": "CSAT"
},
"SETTINGS": "Beállítások",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "E-mail gyűjtődoboz engedélyezése",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Az e-mailek gyűjtődobozának engedélyezése vagy letiltása új beszélgetéseknél",
"AUTO_ASSIGNMENT": "Automata hozzárendelés engedélyezése",
- "ENABLE_CSAT": "CSAT engedélyezése",
"SENDER_NAME_SECTION": "Ügynök nevének engedélyezése e-mailben",
- "ENABLE_CSAT_SUB_TEXT": "A CSAT (Ügyfél-elégedettség) felmérés engedélyezése/letiltása egy beszélgetés megoldása után",
"SENDER_NAME_SECTION_TEXT": "Az ügynök nevének megjelenítésének engedélyezése/letiltása az e-mailben, ha le van tiltva, akkor a cég neve jelenik meg",
"ENABLE_CONTINUITY_VIA_EMAIL": "Beszélgetés folytatásának engedélyezése emailen keresztül",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "A beszélgetések e-mailben folytatódnak, ha elérhető a kapcsolattartási e-mail cím.",
@@ -568,6 +577,32 @@
"LABEL": "A látogatóknak nevük és e-mailcímük megadása szükséges a beszélgetés megkezdése előtt"
}
},
+ "CSAT": {
+ "TITLE": "CSAT engedélyezése",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Üzenet",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "tartalmaz",
+ "DOES_NOT_CONTAINS": "nem tartalmaz"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Elérhetőség beállítása",
"SUBTITLE": "Állításd be az elérhetőséged idejét a chat widgeten",
@@ -753,7 +788,8 @@
"EMAIL": "E-mail",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API csatorna"
+ "API": "API csatorna",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/integrations.json b/app/javascript/dashboard/i18n/locale/hu/integrations.json
index 69908e61c..098dd1f1a 100644
--- a/app/javascript/dashboard/i18n/locale/hu/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hu/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Üzenet frissítve",
"WEBWIDGET_TRIGGERED": "A felhasználó által megnyitott élő chat widget",
"CONTACT_CREATED": "Kontakt létrehozva",
- "CONTACT_UPDATED": "Kontakt frissítve"
+ "CONTACT_UPDATED": "Kontakt frissítve",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Igen, törlés",
"CANCEL": "Mégse"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Üzenet elküldése...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Ön",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Ön",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Gépeld be üzeneted...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Frissítés",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Lehetőségek",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Név",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Leírás",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Lehetőségek",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/hu/macros.json b/app/javascript/dashboard/i18n/locale/hu/macros.json
index fc6eacb47..8cbd8fc93 100644
--- a/app/javascript/dashboard/i18n/locale/hu/macros.json
+++ b/app/javascript/dashboard/i18n/locale/hu/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Beszélgetés elnémítása",
+ "SNOOZE_CONVERSATION": "Beszélgetés alvómódba",
+ "RESOLVE_CONVERSATION": "Beszélgetés megoldása",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Prioritás megváltoztatása",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/report.json b/app/javascript/dashboard/i18n/locale/hu/report.json
index f2729f217..c34bb6b3b 100644
--- a/app/javascript/dashboard/i18n/locale/hu/report.json
+++ b/app/javascript/dashboard/i18n/locale/hu/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Címkék áttekintése",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Táblázat adatok betöltése...",
"NO_ENOUGH_DATA": "Nem érkezett elég adat hogy jelentést generáljunk, kérjük próbáld később.",
"DOWNLOAD_LABEL_REPORTS": "Címkejelentések letöltése",
@@ -559,6 +560,7 @@
"INBOX": "Fiók",
"AGENT": "Ügynök",
"TEAM": "Csapat",
+ "LABEL": "Cimke",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/hu/search.json b/app/javascript/dashboard/i18n/locale/hu/search.json
index f100fceb6..c2da826c8 100644
--- a/app/javascript/dashboard/i18n/locale/hu/search.json
+++ b/app/javascript/dashboard/i18n/locale/hu/search.json
@@ -4,12 +4,14 @@
"ALL": "Mind",
"CONTACTS": "Kontaktok",
"CONVERSATIONS": "Beszélgetések",
- "MESSAGES": "Üzenetek"
+ "MESSAGES": "Üzenetek",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontaktok",
"CONVERSATIONS": "Beszélgetések",
- "MESSAGES": "Üzenetek"
+ "MESSAGES": "Üzenetek",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/hu/settings.json b/app/javascript/dashboard/i18n/locale/hu/settings.json
index d89dfe378..b9cee4b6e 100644
--- a/app/javascript/dashboard/i18n/locale/hu/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hu/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Hozzáférési kulcs",
"NOTE": "Ez a kulcs akkor használható, ha API-alapú integrációt építesz",
- "COPY": "Másolás"
+ "COPY": "Másolás",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Elérhetőség beállítása sikeres",
- "SET_AVAILABILITY_ERROR": "Nem sikerült beállítani az elérhetőséget, kérlek, próbáld újra"
+ "SET_AVAILABILITY_ERROR": "Nem sikerült beállítani az elérhetőséget, kérlek, próbáld újra",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Az e-mailcímed",
@@ -280,6 +286,7 @@
"REPORTS": "Jelentések",
"SETTINGS": "Beállítások",
"CONTACTS": "Kontaktok",
+ "ACTIVE": "Aktív",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Cégnév",
"PLACEHOLDER": "Kovács Kft."
},
- "SUBMIT": "Elküldés"
+ "SUBMIT": "Elküldés",
+ "CANCEL": "Mégse"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/hy/agentBots.json b/app/javascript/dashboard/i18n/locale/hy/agentBots.json
index 41b8fcb1b..d3a0bb991 100644
--- a/app/javascript/dashboard/i18n/locale/hy/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/hy/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Delete",
"TITLE": "Delete bot",
- "SUBMIT": "Delete",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancel",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/auditLogs.json b/app/javascript/dashboard/i18n/locale/hy/auditLogs.json
index 35c054fa2..df236f5b5 100644
--- a/app/javascript/dashboard/i18n/locale/hy/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/hy/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/automation.json b/app/javascript/dashboard/i18n/locale/hy/automation.json
index bb4946416..86ec0b58b 100644
--- a/app/javascript/dashboard/i18n/locale/hy/automation.json
+++ b/app/javascript/dashboard/i18n/locale/hy/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/components.json b/app/javascript/dashboard/i18n/locale/hy/components.json
index c7230b1fc..e44c6e039 100644
--- a/app/javascript/dashboard/i18n/locale/hy/components.json
+++ b/app/javascript/dashboard/i18n/locale/hy/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/contact.json b/app/javascript/dashboard/i18n/locale/hy/contact.json
index fd62731d6..b4bb1c13a 100644
--- a/app/javascript/dashboard/i18n/locale/hy/contact.json
+++ b/app/javascript/dashboard/i18n/locale/hy/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Confirm Deletion",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/hy/conversation.json b/app/javascript/dashboard/i18n/locale/hy/conversation.json
index 6cfe9d082..c047f17ad 100644
--- a/app/javascript/dashboard/i18n/locale/hy/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/hy/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/hy/general.json b/app/javascript/dashboard/i18n/locale/hy/general.json
index 78e97db90..129fb239a 100644
--- a/app/javascript/dashboard/i18n/locale/hy/general.json
+++ b/app/javascript/dashboard/i18n/locale/hy/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/generalSettings.json b/app/javascript/dashboard/i18n/locale/hy/generalSettings.json
index 9ad4e4b57..c0c4d247d 100644
--- a/app/javascript/dashboard/i18n/locale/hy/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hy/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "Cancel",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/hy/helpCenter.json b/app/javascript/dashboard/i18n/locale/hy/helpCenter.json
index 8fa64108b..f437b83d9 100644
--- a/app/javascript/dashboard/i18n/locale/hy/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/hy/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json
index 28a2dd4e2..dae2f9ecb 100644
--- a/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/integrations.json b/app/javascript/dashboard/i18n/locale/hy/integrations.json
index 05e02723f..4eb1343cb 100644
--- a/app/javascript/dashboard/i18n/locale/hy/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hy/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Cancel"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/hy/macros.json b/app/javascript/dashboard/i18n/locale/hy/macros.json
index 95e02fe94..d22744190 100644
--- a/app/javascript/dashboard/i18n/locale/hy/macros.json
+++ b/app/javascript/dashboard/i18n/locale/hy/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/report.json b/app/javascript/dashboard/i18n/locale/hy/report.json
index e176d9147..18f1ed14b 100644
--- a/app/javascript/dashboard/i18n/locale/hy/report.json
+++ b/app/javascript/dashboard/i18n/locale/hy/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/hy/search.json b/app/javascript/dashboard/i18n/locale/hy/search.json
index e6e6edbe7..09c22ae3d 100644
--- a/app/javascript/dashboard/i18n/locale/hy/search.json
+++ b/app/javascript/dashboard/i18n/locale/hy/search.json
@@ -4,12 +4,14 @@
"ALL": "All",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/hy/settings.json b/app/javascript/dashboard/i18n/locale/hy/settings.json
index 7108c1610..219041d75 100644
--- a/app/javascript/dashboard/i18n/locale/hy/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hy/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/id/agentBots.json b/app/javascript/dashboard/i18n/locale/id/agentBots.json
index c7ccbef75..e29fa8263 100644
--- a/app/javascript/dashboard/i18n/locale/id/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/id/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bot",
"LOADING_EDITOR": "Memuat editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Nama bot wajib diisi."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "Apa yang dilakukan bot ini?"
- },
- "BOT_CONFIG": {
- "ERROR": "Harap masukkan konfigurasi bot CSML Anda di atas.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validasi dan simpan"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "Sistem",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Pilih bot agen",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Konfigurasi bot baru",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Batalkan",
"API": {
"SUCCESS_MESSAGE": "Bot berhasil ditambahkan.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "URL Webhook"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Hapus",
"TITLE": "Delete bot",
- "SUBMIT": "Hapus",
- "CANCEL_BUTTON_TEXT": "Batalkan",
- "DESCRIPTION": "Apakah Anda yakin ingin menghapus bot ini? Tindakan ini tidak dapat dibatalkan.",
+ "CONFIRM": {
+ "TITLE": "Konfirmasi Penghapusan",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Ya, Hapus",
+ "NO": "Tidak, Simpan"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot berhasil dihapus.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Batalkan",
"API": {
"SUCCESS_MESSAGE": "Bot berhasil diperbarui.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Token Akses",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Nama bot wajib diisi"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Deskripsi",
+ "PLACEHOLDER": "Apa yang dilakukan bot ini?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "URL Webhook",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Nama bot wajib diisi",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Batalkan",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/auditLogs.json b/app/javascript/dashboard/i18n/locale/id/auditLogs.json
index d180fab5d..f579ef475 100644
--- a/app/javascript/dashboard/i18n/locale/id/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/id/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/automation.json b/app/javascript/dashboard/i18n/locale/id/automation.json
index 442fe0711..c358b0daa 100644
--- a/app/javascript/dashboard/i18n/locale/id/automation.json
+++ b/app/javascript/dashboard/i18n/locale/id/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Tidak ada"
+ "NONE_OPTION": "Tidak ada",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Percakapan Dibuat",
+ "CONVERSATION_UPDATED": "Percakapan Diperbarui",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Matikan Suara Percakapan",
+ "SNOOZE_CONVERSATION": "Tunda Percakapan",
+ "RESOLVE_CONVERSATION": "Selesaikan Percakapan",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Ubah Prioritas",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Kotak masuk",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Nomor Telepon",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Bahasa Browser",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Negara",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Tim",
+ "PRIORITY": "Prioritas"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/components.json b/app/javascript/dashboard/i18n/locale/id/components.json
index 04b44190e..4275c1226 100644
--- a/app/javascript/dashboard/i18n/locale/id/components.json
+++ b/app/javascript/dashboard/i18n/locale/id/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Pelajari lebih lanjut",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/contact.json b/app/javascript/dashboard/i18n/locale/id/contact.json
index b54fafa17..212bde087 100644
--- a/app/javascript/dashboard/i18n/locale/id/contact.json
+++ b/app/javascript/dashboard/i18n/locale/id/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontak",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Pesan",
"SEND_MESSAGE": "Kirim Pesan",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Hapus kontak",
"DELETE_DIALOG": {
"TITLE": "Konfirmasi Penghapusan",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Ya, Hapus",
"API": {
"SUCCESS_MESSAGE": "Kontak berhasil dihapus",
@@ -544,6 +549,9 @@
"WROTE": "menulis",
"YOU": "Anda",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Tambahkan kontak",
"SEARCH_EMPTY_STATE_TITLE": "Tidak ada kontak yang cocok dengan pencarian Anda 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/id/conversation.json b/app/javascript/dashboard/i18n/locale/id/conversation.json
index 6f23d68d8..d3750a26e 100644
--- a/app/javascript/dashboard/i18n/locale/id/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/id/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Memuat Percakapan",
"CANNOT_REPLY": "Anda tidak dapat membalas karena",
"24_HOURS_WINDOW": "Pembatasan jendela pesan 24 jam",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Percakapan ini tidak ditugaskan kepada Anda. Apakah Anda ingin menugaskan percakapan ini kepada diri Anda?",
"ASSIGN_TO_ME": "Tugaskan kepada saya",
"TWILIO_WHATSAPP_CAN_REPLY": "Anda hanya dapat membalas percakapan ini menggunakan pesan template karena",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Pembatasan jendela pesan 24 jam",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Anda membalas:",
"REMOVE_SELECTION": "Hapus Pilihan",
"DOWNLOAD": "Unduh",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Menyelesaikan",
"REOPEN_ACTION": "Buka Kembali",
"OPEN_ACTION": "Terbuka",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Selebihnya",
"CLOSE": "Tutup",
"DETAILS": "detail",
@@ -115,6 +118,11 @@
"FAILED": "Gagal mengubah prioritas. Silakan coba lagi."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Hapus"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Tandai sebagai tertunda",
"RESOLVED": "Tandai sebagai terselesaikan",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Tugaskan label",
"AGENTS_LOADING": "Sedang memuat agen...",
"ASSIGN_TEAM": "Tugaskan tim",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Id percakapan {conversationId} ditugaskan ke \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label berhasil ditugaskan",
"ASSIGN_LABEL_FAILED": "Gagal menugaskan label",
"CHANGE_TEAM": "Percakapan diubah oleh tim",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Lampiran melebihi batas ukuran {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
"MESSAGE_ERROR": "Tidak dapat mengirim pesan ini, mohon coba lagi nanti",
"SENT_BY": "Dikirim oleh:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Tindakan Percakapan",
"CONVERSATION_LABELS": "Label Percakapan",
"CONVERSATION_INFO": "Informasi Percakapan",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Atribut Kontak",
"PREVIOUS_CONVERSATION": "Percakapan Sebelumnya",
"MACROS": "Makro",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/id/general.json b/app/javascript/dashboard/i18n/locale/id/general.json
index 2b082c9c2..8eabae160 100644
--- a/app/javascript/dashboard/i18n/locale/id/general.json
+++ b/app/javascript/dashboard/i18n/locale/id/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Cari",
"EMPTY_STATE": "Tidak ada hasil ditemukan"
- }
+ },
+ "CLOSE": "Tutup"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/generalSettings.json b/app/javascript/dashboard/i18n/locale/id/generalSettings.json
index e037550b3..02afb7fcb 100644
--- a/app/javascript/dashboard/i18n/locale/id/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/id/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Pengaturan akun",
"SUBMIT": "Ubah pengaturan",
"BACK": "Kembali",
@@ -8,6 +14,26 @@
"ERROR": "Tidak dapat memperbarui pengaturan, coba lagi!",
"SUCCESS": "Pengaturan akun berhasil diperbarui"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Hapus",
+ "DISMISS": "Batalkan",
+ "PLACE_HOLDER": "Silakan ketik %{accountName} untuk konfirmasi"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Harap perbaiki kesalahan pada formulir",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID Akun",
"NOTE": "ID ini diperlukan jika Anda membangun integrasi berbasis API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Nama Akun",
"PLACEHOLDER": "Nama akun Anda",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Email dukungan perusahaan Anda",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Jumlah hari setelah tiket harus diselesaikan secara otomatis jika tidak ada aktivitas",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Harap masukkan durasi penyelesaian otomatis yang valid (minimal 1 hari dan maksimal 999 hari)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Perbarui",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Kelanjutan percakapan dengan email diaktifkan untuk akun Anda.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Pembaharuan Chatwoot {latestChatwootVersion} telah tersedia. Silahkan lakukan pembaharuan instance Anda.",
"LEARN_MORE": "Pelajari lebih lanjut",
"PAYMENT_PENDING": "Pembayaran Anda tertunda. Harap perbarui informasi pembayaran Anda untuk melanjutkan menggunakan Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Akun Anda telah melebihi batas penggunaan, harap tingkatkan paket Anda untuk terus menggunakan Chatwoot",
"OPEN_BILLING": "Buka tagihan"
},
diff --git a/app/javascript/dashboard/i18n/locale/id/helpCenter.json b/app/javascript/dashboard/i18n/locale/id/helpCenter.json
index 18a3ed4e4..e5e37fc61 100644
--- a/app/javascript/dashboard/i18n/locale/id/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/id/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug diperlukan"
+ "ERROR": "Slug diperlukan",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json
index dc32b8091..e4277c490 100644
--- a/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Nama Kotak Masuk",
"ADD_NAME": "Tambahkan nama untuk kotak masuk Anda",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pilih"
+ "PICK_A_VALUE": "Pilih",
+ "CREATE_INBOX": "Buat Kotak Masuk"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Untuk menambahkan profil Twitter Anda sebagai saluran, Anda perlu mengautentikasi Profil Twitter Anda dengan mengklik 'Masuk dengan Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Formulir Pra Obrolan",
"BUSINESS_HOURS": "Jam Kerja",
"WIDGET_BUILDER": "Pembuat Widget",
- "BOT_CONFIGURATION": "Konfigurasi Bot"
+ "BOT_CONFIGURATION": "Konfigurasi Bot",
+ "CSAT": "CSAT"
},
"SETTINGS": "Pengaturan",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Aktifkan kotak pengumpulan email",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Aktifkan atau nonaktifkan kotak pengumpulan email pada percakpaan baru",
"AUTO_ASSIGNMENT": "Aktifkan penugasan otomatis",
- "ENABLE_CSAT": "Aktifkan CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Aktifkan/Nonaktifkan survey CSAT (Kepuasan pelanggan) setelah penyelesaian percakapan",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Aktifkan kontinuitas percakapan melalui email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Percakapan akan berlanjut melalui email jika alamat email kontak tersedia.",
@@ -568,6 +577,32 @@
"LABEL": "Pengunjung harus memberikan nama dan alamat email mereka sebelum memulai obrolan"
}
},
+ "CSAT": {
+ "TITLE": "Aktifkan CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Pesan",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "berisi",
+ "DOES_NOT_CONTAINS": "tidak berisi"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Atur ketersediaan Anda",
"SUBTITLE": "Atur ketersediaan Anda di widget livechat",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/integrations.json b/app/javascript/dashboard/i18n/locale/id/integrations.json
index ce2f28639..6a10e7bd2 100644
--- a/app/javascript/dashboard/i18n/locale/id/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/id/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Pesan diperbarui",
"WEBWIDGET_TRIGGERED": "Widget obrolan langsung dibuka oleh pengguna",
"CONTACT_CREATED": "Kontak dibuat",
- "CONTACT_UPDATED": "Kontak diperbarui"
+ "CONTACT_UPDATED": "Kontak diperbarui",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Ya, hapus",
"CANCEL": "Batalkan"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Kirim Pesan...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Anda",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Anda",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Ketik pesan Anda...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Perbarui",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Fitur",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Nama",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Deskripsi",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Fitur",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/id/macros.json b/app/javascript/dashboard/i18n/locale/id/macros.json
index d2daaab3b..25f6abbef 100644
--- a/app/javascript/dashboard/i18n/locale/id/macros.json
+++ b/app/javascript/dashboard/i18n/locale/id/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Matikan Suara Percakapan",
+ "SNOOZE_CONVERSATION": "Tunda Percakapan",
+ "RESOLVE_CONVERSATION": "Selesaikan Percakapan",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Ubah Prioritas",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/report.json b/app/javascript/dashboard/i18n/locale/id/report.json
index 423dc516e..ba8713436 100644
--- a/app/javascript/dashboard/i18n/locale/id/report.json
+++ b/app/javascript/dashboard/i18n/locale/id/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Gambaran Label",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Memuat data grafik...",
"NO_ENOUGH_DATA": "Kami belum menerima cukup data untuk membuat laporan, Silakan coba lagi nanti.",
"DOWNLOAD_LABEL_REPORTS": "Unduh laporan label",
@@ -559,6 +560,7 @@
"INBOX": "Kotak masuk",
"AGENT": "Agen",
"TEAM": "Tim",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/id/search.json b/app/javascript/dashboard/i18n/locale/id/search.json
index 0793d21cf..f62b6a30d 100644
--- a/app/javascript/dashboard/i18n/locale/id/search.json
+++ b/app/javascript/dashboard/i18n/locale/id/search.json
@@ -4,12 +4,14 @@
"ALL": "Semua",
"CONTACTS": "Kontak",
"CONVERSATIONS": "Percakapan",
- "MESSAGES": "Pesan"
+ "MESSAGES": "Pesan",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontak",
"CONVERSATIONS": "Percakapan",
- "MESSAGES": "Pesan"
+ "MESSAGES": "Pesan",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/id/settings.json b/app/javascript/dashboard/i18n/locale/id/settings.json
index fafcd065f..53d4ec05a 100644
--- a/app/javascript/dashboard/i18n/locale/id/settings.json
+++ b/app/javascript/dashboard/i18n/locale/id/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Token Akses",
"NOTE": "Token ini dapat digunakan jika Anda sedang membangun integrasi berbasis API",
- "COPY": "Salin"
+ "COPY": "Salin",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Ketersediaan berhasil diatur",
- "SET_AVAILABILITY_ERROR": "Tidak dapat mengatur ketersediaan, silakan coba lagi"
+ "SET_AVAILABILITY_ERROR": "Tidak dapat mengatur ketersediaan, silakan coba lagi",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Alamat email Anda",
@@ -280,6 +286,7 @@
"REPORTS": "Laporan",
"SETTINGS": "Pengaturan",
"CONTACTS": "Kontak",
+ "ACTIVE": "Aktif",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Nama Perusahaan",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Kirim"
+ "SUBMIT": "Kirim",
+ "CANCEL": "Batalkan"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/is/agentBots.json b/app/javascript/dashboard/i18n/locale/is/agentBots.json
index 583d72de7..3086c7959 100644
--- a/app/javascript/dashboard/i18n/locale/is/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/is/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Hætta við",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Eyða",
"TITLE": "Delete bot",
- "SUBMIT": "Eyða",
- "CANCEL_BUTTON_TEXT": "Hætta við",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Staðfesta eyðingu",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "Nei, hætta við eyðingu"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Breyta",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Hætta við",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Aðgangslykill",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Hætta við",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/auditLogs.json b/app/javascript/dashboard/i18n/locale/is/auditLogs.json
index 5204f0b4e..d2d53719c 100644
--- a/app/javascript/dashboard/i18n/locale/is/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/is/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/automation.json b/app/javascript/dashboard/i18n/locale/is/automation.json
index a88636d9f..48f3a7a4c 100644
--- a/app/javascript/dashboard/i18n/locale/is/automation.json
+++ b/app/javascript/dashboard/i18n/locale/is/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Enginn"
+ "NONE_OPTION": "Enginn",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Þagga Samtal",
+ "SNOOZE_CONVERSATION": "Fresta Samtali",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Tölvupóstfang",
+ "INBOX": "Innhólf",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Símanúmer",
+ "STATUS": "Staða",
+ "BROWSER_LANGUAGE": "Tungumál Vafra",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Land",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/components.json b/app/javascript/dashboard/i18n/locale/is/components.json
index b79a1441c..d71ecd858 100644
--- a/app/javascript/dashboard/i18n/locale/is/components.json
+++ b/app/javascript/dashboard/i18n/locale/is/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Læra meira",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/contact.json b/app/javascript/dashboard/i18n/locale/is/contact.json
index afa78764b..de2b1fdb5 100644
--- a/app/javascript/dashboard/i18n/locale/is/contact.json
+++ b/app/javascript/dashboard/i18n/locale/is/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Tengiliðir",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Skilaboð",
"SEND_MESSAGE": "Senda skilaboð",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Eyða tengilið",
"DELETE_DIALOG": {
"TITLE": "Staðfesta eyðingu",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Já, eyða",
"API": {
"SUCCESS_MESSAGE": "Tengilið eytt",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Engir tengiliðir fundust",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/is/conversation.json b/app/javascript/dashboard/i18n/locale/is/conversation.json
index a234eac16..b5968c810 100644
--- a/app/javascript/dashboard/i18n/locale/is/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/is/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Þetta samtal er ekki úthlutað á þig. Viltu úthluta þessu samtali á þig?",
"ASSIGN_TO_ME": "Úthluta á mig",
"TWILIO_WHATSAPP_CAN_REPLY": "Þú getur aðeins svarað þessu samtali með því að nota sniðmátskilaboð vegna þess að",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Sækja",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Eyða"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Samtalsauðkenni {conversationId} úthlutað á „{agentName}“",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Merki úthlutað",
"ASSIGN_LABEL_FAILED": "Tókst ekki að úthluta merki",
"CHANGE_TEAM": "Teymi samtals breytt",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Skráin fer framyfir hámarksstærð viðhengja ({MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE})",
"MESSAGE_ERROR": "Ekki er hægt að senda þessi skilaboð, vinsamlegast reyndu aftur síðar",
"SENT_BY": "Sent af:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Samtals Aðgerðir",
"CONVERSATION_LABELS": "Merkingar Samtala",
"CONVERSATION_INFO": "Samtals Upplýsingar",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Fyrri samtöl",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/is/general.json b/app/javascript/dashboard/i18n/locale/is/general.json
index da37c9397..a88171218 100644
--- a/app/javascript/dashboard/i18n/locale/is/general.json
+++ b/app/javascript/dashboard/i18n/locale/is/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Leit",
"EMPTY_STATE": "Engar niðurstöður fundust"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/generalSettings.json b/app/javascript/dashboard/i18n/locale/is/generalSettings.json
index 4b63ab07b..0a4b3c052 100644
--- a/app/javascript/dashboard/i18n/locale/is/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/is/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Aðgangs stillingar",
"SUBMIT": "Uppfæra stillingar",
"BACK": "Til baka",
@@ -8,6 +14,26 @@
"ERROR": "Gat ekki uppfært stillingar, reyndu aftur!",
"SUCCESS": "Tókst að uppfæra stillingar"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Eyða",
+ "DISMISS": "Hætta við",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Vinsamlegast lagfærðu villurnar",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Númer aðgangs",
"NOTE": "Þetta auðkenni er nauðsynlegt ef þú ert að byggja upp API byggða samþættingu"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Aðgangsnafn",
"PLACEHOLDER": "Þitt aðgangsnafn",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Þjónustu tölvupóstur fyrirtækisins",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Fjöldi daga eftir miða ætti að leysast sjálfkrafa ef engin virkni er",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Vinsamlega sláðu inn gilda lengd sjálfvirkrar úrlausnar (lágmark 1 dagur og hámark 999 dagar)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Uppfæra",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Samfellu samtals með tölvupósti er virkjuð fyrir reikninginn þinn.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Uppfærsla {latestChatwootVersion} fyrir Chatwoot er fáanleg. Vinsamlegast uppfærðu tilvikið þitt.",
"LEARN_MORE": "Læra meira",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/is/helpCenter.json b/app/javascript/dashboard/i18n/locale/is/helpCenter.json
index 3de53aebd..906df6021 100644
--- a/app/javascript/dashboard/i18n/locale/is/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/is/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json
index 15dde2f99..9f1ace4f7 100644
--- a/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Nafn Innhólfs",
"ADD_NAME": "Bættu við nafni á innhólfið",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Veldu gildi"
+ "PICK_A_VALUE": "Veldu gildi",
+ "CREATE_INBOX": "Nýtt innhólf"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Til að bæta Twitter prófílnum þínum við sem rás þarftu að auðkenna Twitter prófílinn þinn með því að smella á 'Skráðu þig inn með Twitter'",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot stillingar"
+ "BOT_CONFIGURATION": "Bot stillingar",
+ "CSAT": "CSAT"
},
"SETTINGS": "Stillingar",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Virkja eða slökkva á söfnunarreit tölvupósts í nýju samtali",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Virkja/slökkva á CSAT (ánægju viðskiptavina) könnun eftir að hafa leyst samtal",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Samtöl halda áfram með tölvupósti ef tengiliðanetfangið er tiltækt.",
@@ -568,6 +577,32 @@
"LABEL": "Gestir ættu að gefa upp nafn sitt og netfang áður en spjallið hefst"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Skilaboð",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Stilltu framboð þitt á netspjalli",
@@ -753,7 +788,8 @@
"EMAIL": "Tölvupóstfang",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/integrations.json b/app/javascript/dashboard/i18n/locale/is/integrations.json
index b53c9b486..90ba47749 100644
--- a/app/javascript/dashboard/i18n/locale/is/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/is/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Hætta við"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Senda skilaboð...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Skrifaðu skilaboðin hér...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Uppfæra",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Fídusar",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Nafn",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Fídusar",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/is/macros.json b/app/javascript/dashboard/i18n/locale/is/macros.json
index 434975064..1149373b9 100644
--- a/app/javascript/dashboard/i18n/locale/is/macros.json
+++ b/app/javascript/dashboard/i18n/locale/is/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Þagga Samtal",
+ "SNOOZE_CONVERSATION": "Fresta Samtali",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/report.json b/app/javascript/dashboard/i18n/locale/is/report.json
index 7bb9c3f0f..d415c05f1 100644
--- a/app/javascript/dashboard/i18n/locale/is/report.json
+++ b/app/javascript/dashboard/i18n/locale/is/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "Við höfum ekki fengið nógu marga gagnapunkta til að búa til skýrslu, vinsamlegast reyndu aftur síðar.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Innhólf",
"AGENT": "Þjónustufulltrúi",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/is/search.json b/app/javascript/dashboard/i18n/locale/is/search.json
index 0fcad2100..794166710 100644
--- a/app/javascript/dashboard/i18n/locale/is/search.json
+++ b/app/javascript/dashboard/i18n/locale/is/search.json
@@ -4,12 +4,14 @@
"ALL": "Allt",
"CONTACTS": "Tengiliðir",
"CONVERSATIONS": "Samtöl",
- "MESSAGES": "Skilaboð"
+ "MESSAGES": "Skilaboð",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Tengiliðir",
"CONVERSATIONS": "Samtöl",
- "MESSAGES": "Skilaboð"
+ "MESSAGES": "Skilaboð",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/is/settings.json b/app/javascript/dashboard/i18n/locale/is/settings.json
index 3f585bc67..0526ecff0 100644
--- a/app/javascript/dashboard/i18n/locale/is/settings.json
+++ b/app/javascript/dashboard/i18n/locale/is/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Aðgangslykill",
"NOTE": "Þetta token er hægt að nota ef þú ert að byggja upp API byggða samþættingu",
- "COPY": "Afrita"
+ "COPY": "Afrita",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Þitt tölvupóstfang",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Stillingar",
"CONTACTS": "Tengiliðir",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Nafn fyrirtækis",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Senda"
+ "SUBMIT": "Senda",
+ "CANCEL": "Hætta við"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/it/agentBots.json b/app/javascript/dashboard/i18n/locale/it/agentBots.json
index af608a321..c620caa88 100644
--- a/app/javascript/dashboard/i18n/locale/it/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/it/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Annulla",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "URL del webhook"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Elimina",
"TITLE": "Delete bot",
- "SUBMIT": "Elimina",
- "CANCEL_BUTTON_TEXT": "Annulla",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Conferma eliminazione",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Sì, elimina",
+ "NO": "No, conserva"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Modifica",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Annulla",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Token di accesso",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrizione",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "URL del webhook",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "annulla",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/auditLogs.json b/app/javascript/dashboard/i18n/locale/it/auditLogs.json
index 58d2dbc05..5cd03a26e 100644
--- a/app/javascript/dashboard/i18n/locale/it/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/it/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/automation.json b/app/javascript/dashboard/i18n/locale/it/automation.json
index 003d2102c..f6e48123a 100644
--- a/app/javascript/dashboard/i18n/locale/it/automation.json
+++ b/app/javascript/dashboard/i18n/locale/it/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Nessuno"
+ "NONE_OPTION": "Nessuno",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversazione creata",
+ "CONVERSATION_UPDATED": "Conversazione aggiornata",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Silenzia conversazione",
+ "SNOOZE_CONVERSATION": "Posticipa conversazione",
+ "RESOLVE_CONVERSATION": "Risolvi la conversazione",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Casella",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Numero di telefono",
+ "STATUS": "Stato",
+ "BROWSER_LANGUAGE": "Lingua del browser",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Paese",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priorità"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/components.json b/app/javascript/dashboard/i18n/locale/it/components.json
index 5fdad88ac..c1d5dfd8b 100644
--- a/app/javascript/dashboard/i18n/locale/it/components.json
+++ b/app/javascript/dashboard/i18n/locale/it/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Scopri di più",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/contact.json b/app/javascript/dashboard/i18n/locale/it/contact.json
index 3f984ed28..4336852b7 100644
--- a/app/javascript/dashboard/i18n/locale/it/contact.json
+++ b/app/javascript/dashboard/i18n/locale/it/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contatti",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Messaggio",
"SEND_MESSAGE": "Invia messaggio",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Elimina contatto",
"DELETE_DIALOG": {
"TITLE": "Conferma eliminazione",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Sì, elimina",
"API": {
"SUCCESS_MESSAGE": "Contatto eliminato con successo",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Nessun contatto corrisponde alla tua ricerca 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/it/conversation.json b/app/javascript/dashboard/i18n/locale/it/conversation.json
index d29d531ed..594e154d1 100644
--- a/app/javascript/dashboard/i18n/locale/it/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/it/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Caricamento conversazioni",
"CANNOT_REPLY": "Non puoi rispondere a causa di",
"24_HOURS_WINDOW": "Restrizione della finestra del messaggio a 24 ore",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Questa conversazione non è assegnata. Vuoi assegnare questa conversazione a te stesso?",
"ASSIGN_TO_ME": "Assegna a me",
"TWILIO_WHATSAPP_CAN_REPLY": "È possibile rispondere a questa conversazione solo utilizzando un messaggio modello a causa di",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Restrizione della finestra del messaggio a 24 ore",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Stai rispondendo a:",
"REMOVE_SELECTION": "Rimuovi selezione",
"DOWNLOAD": "Scarica",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Risolvi",
"REOPEN_ACTION": "Riapri",
"OPEN_ACTION": "Apri",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Altro",
"CLOSE": "Chiudi",
"DETAILS": "Dettagli",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Elimina"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Segna come in sospeso",
"RESOLVED": "Contrassegna come risolto",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assegna etichetta",
"AGENTS_LOADING": "Caricamento agenti...",
"ASSIGN_TEAM": "Assegna team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "ID conversazione {conversationId} assegnato a \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Etichetta assegnata correttamente",
"ASSIGN_LABEL_FAILED": "Assegnazione etichetta non riuscita",
"CHANGE_TEAM": "Team conversazione cambiato",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Il file supera il limite di {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB per l'allegato",
"MESSAGE_ERROR": "Impossibile inviare questo messaggio, riprova più tardi",
"SENT_BY": "Inviato da:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Azioni conversazione",
"CONVERSATION_LABELS": "Etichette conversazione",
"CONVERSATION_INFO": "Informazioni conversazione",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Attributi contatti",
"PREVIOUS_CONVERSATION": "Conversazioni precedenti",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/it/general.json b/app/javascript/dashboard/i18n/locale/it/general.json
index 1fd89fe3a..71d0d7759 100644
--- a/app/javascript/dashboard/i18n/locale/it/general.json
+++ b/app/javascript/dashboard/i18n/locale/it/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Cerca",
"EMPTY_STATE": "Nessun risultato trovato"
- }
+ },
+ "CLOSE": "Chiudi"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/generalSettings.json b/app/javascript/dashboard/i18n/locale/it/generalSettings.json
index c53739283..7b7906541 100644
--- a/app/javascript/dashboard/i18n/locale/it/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/it/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Impostazioni account",
"SUBMIT": "Aggiorna le impostazioni",
"BACK": "Indietro",
@@ -8,6 +14,26 @@
"ERROR": "Impossibile aggiornare le impostazioni, riprova!",
"SUCCESS": "Impostazioni account aggiornate con successo"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Elimina",
+ "DISMISS": "annulla",
+ "PLACE_HOLDER": "Digita {accountName} per confermare"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Correggi gli errori del modulo",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID Account",
"NOTE": "Questo ID è richiesto se si sta costruendo un'integrazione basata su API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferenze",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Nome account",
"PLACEHOLDER": "Nome del tuo account",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Email di supporto della tua azienda",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Numero di giorni dopo che un ticket dovrebbe risolvere automaticamente se non c'è attività",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Inserisci una durata di risoluzione automatica valida (minimo 1 giorno e massimo 999 giorni)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Aggiorna",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "La continuità della conversazione con le email è abilitata per il tuo account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "È disponibile un aggiornamento {latestChatwootVersion} per Chatwoot. Aggiorna la tua istanza.",
"LEARN_MORE": "Scopri di più",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/it/helpCenter.json b/app/javascript/dashboard/i18n/locale/it/helpCenter.json
index 1d23f8278..b6b3ff5f8 100644
--- a/app/javascript/dashboard/i18n/locale/it/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/it/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug è obbligatorio"
+ "ERROR": "Slug è obbligatorio",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json
index 9eb2170c1..80394d5a1 100644
--- a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Nome casella",
"ADD_NAME": "Aggiungi un nome per la tua casella",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Scegli un valore"
+ "PICK_A_VALUE": "Scegli un valore",
+ "CREATE_INBOX": "Crea casella"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Per aggiungere il tuo profilo Twitter come canale, devi autenticare il tuo profilo Twitter cliccando su 'Accedi con Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Modulo pre-chat",
"BUSINESS_HOURS": "Ore di lavoro",
"WIDGET_BUILDER": "Costruttore Widget",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Impostazioni",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Abilita casella di raccolta email",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Abilita o disabilita la casella di raccolta email nella nuova conversazione",
"AUTO_ASSIGNMENT": "Abilita assegnazione automatica",
- "ENABLE_CSAT": "Abilita CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Attiva/Disabilita il sondaggio CSAT (soddisfazione del cliente) dopo aver risolto una conversazione",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Abilita la continuità della conversazione via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Le conversazioni continueranno via email se l'indirizzo email del contatto è disponibile.",
@@ -568,6 +577,32 @@
"LABEL": "I visitatori devono fornire il proprio nome e indirizzo email prima di iniziare la chat"
}
},
+ "CSAT": {
+ "TITLE": "Abilita CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Messaggio",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contiene",
+ "DOES_NOT_CONTAINS": "non contiene"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Imposta la tua disponibilità",
"SUBTITLE": "Imposta la tua disponibilità sul tuo widget live chat",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "Canale API"
+ "API": "Canale API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/integrations.json b/app/javascript/dashboard/i18n/locale/it/integrations.json
index 3d5689bf7..12b389fa3 100644
--- a/app/javascript/dashboard/i18n/locale/it/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/it/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Messaggio aggiornato",
"WEBWIDGET_TRIGGERED": "Widget live chat aperto dall'utente",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "annulla"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Invia messaggio...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Scrivi il tuo messaggio...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Aggiorna",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Funzionalità",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Descrizione",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Funzionalità",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/it/macros.json b/app/javascript/dashboard/i18n/locale/it/macros.json
index 61bb6fd6f..fbbfe2c50 100644
--- a/app/javascript/dashboard/i18n/locale/it/macros.json
+++ b/app/javascript/dashboard/i18n/locale/it/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Silenzia conversazione",
+ "SNOOZE_CONVERSATION": "Posticipa conversazione",
+ "RESOLVE_CONVERSATION": "Risolvi la conversazione",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/report.json b/app/javascript/dashboard/i18n/locale/it/report.json
index c944e62e9..d6471a7ff 100644
--- a/app/javascript/dashboard/i18n/locale/it/report.json
+++ b/app/javascript/dashboard/i18n/locale/it/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Panoramica etichette",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Caricamento dati del grafico...",
"NO_ENOUGH_DATA": "Non abbiamo ricevuto abbastanza punti dati per generare il rapporto, riprova più tardi.",
"DOWNLOAD_LABEL_REPORTS": "Scarica report etichette",
@@ -559,6 +560,7 @@
"INBOX": "Casella",
"AGENT": "Agente",
"TEAM": "Team",
+ "LABEL": "Etichetta",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/it/search.json b/app/javascript/dashboard/i18n/locale/it/search.json
index 24714c53a..d2813ab21 100644
--- a/app/javascript/dashboard/i18n/locale/it/search.json
+++ b/app/javascript/dashboard/i18n/locale/it/search.json
@@ -4,12 +4,14 @@
"ALL": "Tutti",
"CONTACTS": "Contatti",
"CONVERSATIONS": "Conversazioni",
- "MESSAGES": "Messaggi"
+ "MESSAGES": "Messaggi",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contatti",
"CONVERSATIONS": "Conversazioni",
- "MESSAGES": "Messaggi"
+ "MESSAGES": "Messaggi",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/it/settings.json b/app/javascript/dashboard/i18n/locale/it/settings.json
index 57f6a1cc6..401423a5d 100644
--- a/app/javascript/dashboard/i18n/locale/it/settings.json
+++ b/app/javascript/dashboard/i18n/locale/it/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Token di accesso",
"NOTE": "Questo token può essere usato se stai costruendo un'integrazione basata su API",
- "COPY": "Copia"
+ "COPY": "Copia",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Il tuo indirizzo email",
@@ -280,6 +286,7 @@
"REPORTS": "Segnalazioni",
"SETTINGS": "Impostazioni",
"CONTACTS": "Contatti",
+ "ACTIVE": "Attivo",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Nome azienda",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Invia"
+ "SUBMIT": "Invia",
+ "CANCEL": "annulla"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ja/agentBots.json b/app/javascript/dashboard/i18n/locale/ja/agentBots.json
index e9b96da56..0b50ce755 100644
--- a/app/javascript/dashboard/i18n/locale/ja/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ja/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "ボット",
"LOADING_EDITOR": "エディターを読み込んでいます...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "ボット名",
- "PLACEHOLDER": "ボットに名前を付けてください。",
- "ERROR": "ボット名は必須です。"
- },
- "DESCRIPTION": {
- "LABEL": "ボットの説明",
- "PLACEHOLDER": "このボットは何をしますか?"
- },
- "BOT_CONFIG": {
- "ERROR": "上記にCSMLボット設定を入力してください。",
- "API_ERROR": "CSML設定が無効です。修正して再試行してください。"
- },
- "SUBMIT": "検証して保存"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "システム",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "エージェントボットを選択",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "ボットを選択"
},
"ADD": {
- "TITLE": "新しいボットを設定",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "キャンセル",
"API": {
"SUCCESS_MESSAGE": "ボットが正常に追加されました。",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "ボットが見つかりません。\"新しいボットを設定\" ボタンをクリックしてボットを作成できます↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "ボットを取得中...",
- "TYPE": "ボットタイプ"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "削除",
"TITLE": "ボットを削除",
- "SUBMIT": "削除",
- "CANCEL_BUTTON_TEXT": "キャンセル",
- "DESCRIPTION": "本当にこのボットを削除しますか?この操作は元に戻せません。",
+ "CONFIRM": {
+ "TITLE": "削除の確認",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "削除する",
+ "NO": "いいえ"
+ },
"API": {
"SUCCESS_MESSAGE": "ボットが正常に削除されました。",
"ERROR_MESSAGE": "ボットを削除できませんでした。再試行してください。"
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "編集",
- "LOADING": "ボットを取得中...",
"TITLE": "ボットを編集",
- "CANCEL_BUTTON_TEXT": "キャンセル",
"API": {
"SUCCESS_MESSAGE": "ボットが正常に更新されました。",
"ERROR_MESSAGE": "ボットを更新できませんでした。再試行してください。"
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "アクセストークン",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "ボット名",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "説明",
+ "PLACEHOLDER": "このボットは何をしますか?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "キャンセル",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhookボット",
- "CSML": "CSMLボット"
+ "WEBHOOK": "Webhookボット"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/auditLogs.json b/app/javascript/dashboard/i18n/locale/ja/auditLogs.json
index 300afa78d..60ee3577c 100644
--- a/app/javascript/dashboard/i18n/locale/ja/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ja/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} がアカウント設定 (#{id}) を更新しました"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/automation.json b/app/javascript/dashboard/i18n/locale/ja/automation.json
index cd0d646b0..1b8a079c2 100644
--- a/app/javascript/dashboard/i18n/locale/ja/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ja/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "少なくとも1つの条件が必要です",
"ATLEAST_ONE_ACTION_REQUIRED": "少なくとも1つのアクションが必要です"
},
- "NONE_OPTION": "なし"
+ "NONE_OPTION": "なし",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "会話が作成されました",
+ "CONVERSATION_UPDATED": "会話が更新されました",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "会話をミュート",
+ "SNOOZE_CONVERSATION": "会話をスヌーズ",
+ "RESOLVE_CONVERSATION": "会話を解決",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "優先度を変更",
+ "ADD_SLA": "SLAを追加"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Eメール",
+ "INBOX": "受信トレイ",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "電話番号",
+ "STATUS": "状況",
+ "BROWSER_LANGUAGE": "ブラウザの言語",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "国",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "担当者",
+ "TEAM_NAME": "チーム",
+ "PRIORITY": "優先度"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/components.json b/app/javascript/dashboard/i18n/locale/ja/components.json
index 516a6090d..75ea91312 100644
--- a/app/javascript/dashboard/i18n/locale/ja/components.json
+++ b/app/javascript/dashboard/i18n/locale/ja/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "詳細を見る",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/contact.json b/app/javascript/dashboard/i18n/locale/ja/contact.json
index d6309a92e..a37e63f54 100644
--- a/app/javascript/dashboard/i18n/locale/ja/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ja/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "連絡先",
"SEARCH_TITLE": "連絡先を検索",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "検索...",
"MESSAGE_BUTTON": "メッセージ",
"SEND_MESSAGE": "メッセージを送信",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Twitterを追加"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "連絡先を削除",
"DELETE_DIALOG": {
"TITLE": "削除の確認",
- "DESCRIPTION": "この {contactName} の連絡先を削除してもよろしいですか?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "削除する",
"API": {
"SUCCESS_MESSAGE": "連絡先が正常に削除されました。",
@@ -544,6 +549,9 @@
"WROTE": "が記入しました",
"YOU": "あなた",
"SAVE": "メモを保存",
+ "EXPAND": "拡張",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "この連絡先に関連するメモはありません。上記のボックスに入力してメモを追加できます。"
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "以下のボタンをクリックして新しい連絡先を追加してください。",
"BUTTON_LABEL": "連絡先を追加",
"SEARCH_EMPTY_STATE_TITLE": "検索に一致する連絡先はありません 🔍",
- "LIST_EMPTY_STATE_TITLE": "このビューには利用可能な連絡先がありません 📋"
+ "LIST_EMPTY_STATE_TITLE": "このビューには利用可能な連絡先がありません 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ja/conversation.json b/app/javascript/dashboard/i18n/locale/ja/conversation.json
index 2d2071f7a..23d768def 100644
--- a/app/javascript/dashboard/i18n/locale/ja/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ja/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "会話データを読み込んでいます",
"CANNOT_REPLY": "以下の理由で返信できません:",
"24_HOURS_WINDOW": "24時間以内のメッセージウィンドウの制限",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "この会話はあなたに割り当てられていません。自分に割り当てますか?",
"ASSIGN_TO_ME": "自分に割り当て",
"TWILIO_WHATSAPP_CAN_REPLY": "この会話にはテンプレートメッセージでしか返信できません。",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24時間以内のメッセージウィンドウの制限",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "以下に返信:",
"REMOVE_SELECTION": "選択項目を削除",
"DOWNLOAD": "ダウンロード",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "解決する",
"REOPEN_ACTION": "再開する",
"OPEN_ACTION": "再開する",
+ "MORE_ACTIONS": "More actions",
"OPEN": "もっと見る",
"CLOSE": "閉じる",
"DETAILS": "詳細",
@@ -115,6 +118,11 @@
"FAILED": "優先度を変更できませんでした。もう一度お試しください。"
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "削除"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "保留としてマークする",
"RESOLVED": "解決済みとしてマークする",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "ラベルを割り当てる",
"AGENTS_LOADING": "エージェントを読み込む...",
"ASSIGN_TEAM": "チームを割り当てる",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "会話 ID {conversationId} が \"{agentName}\" に割り当てられました",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "ラベルが正常に割り当てられました",
"ASSIGN_LABEL_FAILED": "ラベル割り当てに失敗しました",
"CHANGE_TEAM": "会話のチームが変更されました",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "ファイルが {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB の添付ファイル制限を超えています",
"MESSAGE_ERROR": "このメッセージを送信できません。後でもう一度お試しください",
"SENT_BY": "送信者:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "会話のアクション",
"CONVERSATION_LABELS": "会話のラベル",
"CONVERSATION_INFO": "会話の情報",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "連絡先属性",
"PREVIOUS_CONVERSATION": "以前の会話",
"MACROS": "マクロ",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ja/general.json b/app/javascript/dashboard/i18n/locale/ja/general.json
index 533e00a4f..4f68ce750 100644
--- a/app/javascript/dashboard/i18n/locale/ja/general.json
+++ b/app/javascript/dashboard/i18n/locale/ja/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "検索",
"EMPTY_STATE": "結果が見つかりませんでした。"
- }
+ },
+ "CLOSE": "閉じる"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/generalSettings.json b/app/javascript/dashboard/i18n/locale/ja/generalSettings.json
index 590fb8649..c52280e39 100644
--- a/app/javascript/dashboard/i18n/locale/ja/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ja/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "アカウント設定",
"SUBMIT": "設定を更新",
"BACK": "戻る",
@@ -8,6 +14,26 @@
"ERROR": "設定を更新できませんでした。もう一度お試しください",
"SUCCESS": "アカウント設定が正常に更新されました"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "削除",
+ "DISMISS": "キャンセル",
+ "PLACE_HOLDER": "{accountName}と入力して確認してください"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "正しくフォームに入力してください",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "アカウントID",
"NOTE": "APIベースの統合を構築する場合に必要なIDです"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "アカウント名",
"PLACEHOLDER": "あなたのアカウント名",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "会社のサポートメールアドレス",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "アクティビティがない場合にチケットを自動解決するまでの日数",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "有効な自動解決期間を入力してください(最小1日、最大999日)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "更新",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "あなたのアカウントでは、メールでの会話が継続可能です。",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Chatwootのアップデート {latestChatwootVersion} が利用可能です。インスタンスを更新してください。",
"LEARN_MORE": "詳細を見る",
"PAYMENT_PENDING": "お支払いが保留中です。支払い情報を更新してChatwootの利用を継続してください。",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "アカウントの使用制限を超えました。プランをアップグレードして利用を続けてください。",
"OPEN_BILLING": "請求情報を開く"
},
diff --git a/app/javascript/dashboard/i18n/locale/ja/helpCenter.json b/app/javascript/dashboard/i18n/locale/ja/helpCenter.json
index d2132a521..1edb03b09 100644
--- a/app/javascript/dashboard/i18n/locale/ja/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ja/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "スラッグ",
"PLACEHOLDER": "user-guide",
- "ERROR": "スラッグが必須です"
+ "ERROR": "スラッグが必須です",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json
index 1f799b628..3a44b1503 100644
--- a/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "受信トレイ名",
"ADD_NAME": "受信トレイに名前をつける",
"PICK_NAME": "受信トレイの名前を選択",
- "PICK_A_VALUE": "値を選択"
+ "PICK_A_VALUE": "値を選択",
+ "CREATE_INBOX": "受信トレイを作成"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Twitterプロフィールをチャンネルとして追加するには、「Twitterでサインイン」をクリックしてTwitterプロフィールを認証する必要があります。",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "プレチャットフォーム",
"BUSINESS_HOURS": "営業時間",
"WIDGET_BUILDER": "ウィジェットビルダー",
- "BOT_CONFIGURATION": "ボット設定"
+ "BOT_CONFIGURATION": "ボット設定",
+ "CSAT": "顧客満足度"
},
"SETTINGS": "設定",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "メール収集ボックスを有効にする",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "新しい会話でメール収集ボックスを有効または無効にする",
"AUTO_ASSIGNMENT": "自動割り当てを有効にする",
- "ENABLE_CSAT": "CSATを有効にする",
"SENDER_NAME_SECTION": "メールに担当者名を表示する",
- "ENABLE_CSAT_SUB_TEXT": "会話解決後にCSAT(顧客満足度)調査を有効または無効にする",
"SENDER_NAME_SECTION_TEXT": "担当者名をメールに表示するかどうかを設定します。無効にするとビジネス名が表示されます。",
"ENABLE_CONTINUITY_VIA_EMAIL": "メールによる会話の継続を有効にする",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "連絡先のメールアドレスが利用可能な場合、会話はメールで継続されます。",
@@ -568,6 +577,32 @@
"LABEL": "訪問者はチャットを開始する前に名前とメールアドレスを提供する必要があります"
}
},
+ "CSAT": {
+ "TITLE": "CSATを有効にする",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "メッセージ",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "含む",
+ "DOES_NOT_CONTAINS": "含まない"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "営業時間を設定する",
"SUBTITLE": "ライブチャットウィジェットでの利用可能時間を設定します",
@@ -753,7 +788,8 @@
"EMAIL": "Eメール",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "APIチャンネル"
+ "API": "APIチャンネル",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/integrations.json b/app/javascript/dashboard/i18n/locale/ja/integrations.json
index 4a0f4f079..42694429a 100644
--- a/app/javascript/dashboard/i18n/locale/ja/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ja/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "メッセージが更新されました",
"WEBWIDGET_TRIGGERED": "ユーザーによってライブチャットウィジェットが開かれました",
"CONTACT_CREATED": "連絡先が作成されました",
- "CONTACT_UPDATED": "連絡先が更新されました"
+ "CONTACT_UPDATED": "連絡先が更新されました",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "課題のリンクが正常に解除されました",
"ERROR": "課題のリンク解除中にエラーが発生しました。もう一度お試しください"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "はい、削除します",
"CANCEL": "キャンセル"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "キャプテン",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "コパイロット",
+ "TRY_THESE_PROMPTS": "これらのプロンプトを試してください",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "メッセージを送信...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captainが考え中",
"YOU": "あなた",
"USE": "これを使用",
"RESET": "リセット",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "あなた",
+ "ASSISTANT": "アシスタント",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "アップグレードしてCaptain AIを利用する",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "プランはいつでも変更またはキャンセルできます"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AIは有料プランのみで利用可能です。",
"UPGRADE_PROMPT": "アシスタント、Copilotなどにアクセスするには、プランをアップグレードしてください。",
"ASK_ADMIN": "管理者にアップグレードを依頼してください。"
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "アシスタント",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "新しいアシスタントを作成",
"DELETE": {
"TITLE": "アシスタントを削除してもよろしいですか?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "アシスタントの作成中にエラーが発生しました。もう一度お試しください。"
},
"FORM": {
+ "UPDATE": "更新",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "機能",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "アシスタント名",
- "PLACEHOLDER": "アシスタントの名前を入力",
- "ERROR": "アシスタントの名前を入力してください"
+ "LABEL": "名前",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "アシスタントの説明",
- "PLACEHOLDER": "このアシスタントがどのように、どこで使用されるかを説明",
- "ERROR": "説明が必要です"
+ "LABEL": "説明",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "製品名",
- "PLACEHOLDER": "このアシスタントが設計された製品の名前を入力",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "製品名が必要です"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "機能",
"ALLOW_CONVERSATION_FAQS": "解決済みの会話からFAQを生成",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "アシスタントを更新",
"SUCCESS_MESSAGE": "アシスタントが正常に更新されました",
- "ERROR_MESSAGE": "アシスタントの更新中にエラーが発生しました。もう一度お試しください。"
+ "ERROR_MESSAGE": "アシスタントの更新中にエラーが発生しました。もう一度お試しください。",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "アシスタントを編集",
diff --git a/app/javascript/dashboard/i18n/locale/ja/macros.json b/app/javascript/dashboard/i18n/locale/ja/macros.json
index b099675d5..b17e80898 100644
--- a/app/javascript/dashboard/i18n/locale/ja/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ja/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "アクションパラメータが必須です",
"ATLEAST_ONE_CONDITION_REQUIRED": "少なくとも1つの条件が必要です",
"ATLEAST_ONE_ACTION_REQUIRED": "少なくとも1つのアクションが必要です"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "会話をミュート",
+ "SNOOZE_CONVERSATION": "会話をスヌーズ",
+ "RESOLVE_CONVERSATION": "会話を解決",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "優先度を変更",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/report.json b/app/javascript/dashboard/i18n/locale/ja/report.json
index d0eb75917..94c82e300 100644
--- a/app/javascript/dashboard/i18n/locale/ja/report.json
+++ b/app/javascript/dashboard/i18n/locale/ja/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "過去 1 年",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "グラフデータを読み込んでいます...",
"NO_ENOUGH_DATA": "レポートを生成するための十分なデータポイントを受信していません。後でもう一度お試しください。",
"DOWNLOAD_LABEL_REPORTS": "ラベルレポートをダウンロード",
@@ -559,6 +560,7 @@
"INBOX": "受信トレイ",
"AGENT": "担当者",
"TEAM": "チーム",
+ "LABEL": "ラベル",
"AVG_RESOLUTION_TIME": "解決までの平均時間",
"AVG_FIRST_RESPONSE_TIME": "初回応答の平均時間",
"AVG_REPLY_TIME": "お客様の平均待ち時間",
diff --git a/app/javascript/dashboard/i18n/locale/ja/search.json b/app/javascript/dashboard/i18n/locale/ja/search.json
index 15c0d757a..6d9e388d6 100644
--- a/app/javascript/dashboard/i18n/locale/ja/search.json
+++ b/app/javascript/dashboard/i18n/locale/ja/search.json
@@ -4,12 +4,14 @@
"ALL": "すべて",
"CONTACTS": "連絡先",
"CONVERSATIONS": "会話データ",
- "MESSAGES": "メッセージ"
+ "MESSAGES": "メッセージ",
+ "ARTICLES": "記事"
},
"SECTION": {
"CONTACTS": "連絡先",
"CONVERSATIONS": "会話データ",
- "MESSAGES": "メッセージ"
+ "MESSAGES": "メッセージ",
+ "ARTICLES": "記事"
},
"VIEW_MORE": "さらに表示",
"LOAD_MORE": "さらに読み込む",
diff --git a/app/javascript/dashboard/i18n/locale/ja/settings.json b/app/javascript/dashboard/i18n/locale/ja/settings.json
index 765f956b0..37affa889 100644
--- a/app/javascript/dashboard/i18n/locale/ja/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ja/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "アクセストークン",
"NOTE": "このトークンは、API連携を構築する場合に利用します。",
- "COPY": "コピー"
+ "COPY": "コピー",
+ "RESET": "リセット",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "オーディオアラート",
@@ -185,7 +190,8 @@
"OFFLINE": "オフライン"
},
"SET_AVAILABILITY_SUCCESS": "利用可能ステータスが正常に設定されました",
- "SET_AVAILABILITY_ERROR": "利用可能ステータスを設定できませんでした。もう一度お試しください"
+ "SET_AVAILABILITY_ERROR": "利用可能ステータスを設定できませんでした。もう一度お試しください",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "あなたのメールアドレス",
@@ -280,6 +286,7 @@
"REPORTS": "レポート",
"SETTINGS": "設定",
"CONTACTS": "連絡先",
+ "ACTIVE": "有効",
"CAPTAIN": "キャプテン",
"CAPTAIN_ASSISTANTS": "アシスタント",
"CAPTAIN_DOCUMENTS": "ドキュメント",
@@ -387,7 +394,8 @@
"LABEL": "企業名",
"PLACEHOLDER": "例: Wayne Enterprise"
},
- "SUBMIT": "送信"
+ "SUBMIT": "送信",
+ "CANCEL": "キャンセル"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ka/agentBots.json b/app/javascript/dashboard/i18n/locale/ka/agentBots.json
index 41b8fcb1b..d3a0bb991 100644
--- a/app/javascript/dashboard/i18n/locale/ka/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ka/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Delete",
"TITLE": "Delete bot",
- "SUBMIT": "Delete",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancel",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/auditLogs.json b/app/javascript/dashboard/i18n/locale/ka/auditLogs.json
index 35c054fa2..df236f5b5 100644
--- a/app/javascript/dashboard/i18n/locale/ka/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ka/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/automation.json b/app/javascript/dashboard/i18n/locale/ka/automation.json
index bb4946416..86ec0b58b 100644
--- a/app/javascript/dashboard/i18n/locale/ka/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ka/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/components.json b/app/javascript/dashboard/i18n/locale/ka/components.json
index c7230b1fc..e44c6e039 100644
--- a/app/javascript/dashboard/i18n/locale/ka/components.json
+++ b/app/javascript/dashboard/i18n/locale/ka/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/contact.json b/app/javascript/dashboard/i18n/locale/ka/contact.json
index fd62731d6..b4bb1c13a 100644
--- a/app/javascript/dashboard/i18n/locale/ka/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ka/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Confirm Deletion",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ka/conversation.json b/app/javascript/dashboard/i18n/locale/ka/conversation.json
index 6cfe9d082..c047f17ad 100644
--- a/app/javascript/dashboard/i18n/locale/ka/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ka/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ka/general.json b/app/javascript/dashboard/i18n/locale/ka/general.json
index 78e97db90..129fb239a 100644
--- a/app/javascript/dashboard/i18n/locale/ka/general.json
+++ b/app/javascript/dashboard/i18n/locale/ka/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/generalSettings.json b/app/javascript/dashboard/i18n/locale/ka/generalSettings.json
index 9ad4e4b57..c0c4d247d 100644
--- a/app/javascript/dashboard/i18n/locale/ka/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ka/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "Cancel",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/ka/helpCenter.json b/app/javascript/dashboard/i18n/locale/ka/helpCenter.json
index 8fa64108b..f437b83d9 100644
--- a/app/javascript/dashboard/i18n/locale/ka/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ka/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json
index c3b887c2c..5e7ac5a26 100644
--- a/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/integrations.json b/app/javascript/dashboard/i18n/locale/ka/integrations.json
index 05e02723f..4eb1343cb 100644
--- a/app/javascript/dashboard/i18n/locale/ka/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ka/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Cancel"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/ka/macros.json b/app/javascript/dashboard/i18n/locale/ka/macros.json
index 95e02fe94..d22744190 100644
--- a/app/javascript/dashboard/i18n/locale/ka/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ka/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/report.json b/app/javascript/dashboard/i18n/locale/ka/report.json
index e176d9147..18f1ed14b 100644
--- a/app/javascript/dashboard/i18n/locale/ka/report.json
+++ b/app/javascript/dashboard/i18n/locale/ka/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/ka/search.json b/app/javascript/dashboard/i18n/locale/ka/search.json
index 3cb566813..e8510ab97 100644
--- a/app/javascript/dashboard/i18n/locale/ka/search.json
+++ b/app/javascript/dashboard/i18n/locale/ka/search.json
@@ -4,12 +4,14 @@
"ALL": "All",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/ka/settings.json b/app/javascript/dashboard/i18n/locale/ka/settings.json
index a05b20d4c..6a9cbf229 100644
--- a/app/javascript/dashboard/i18n/locale/ka/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ka/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ko/agentBots.json b/app/javascript/dashboard/i18n/locale/ko/agentBots.json
index 2482c2e11..86664d128 100644
--- a/app/javascript/dashboard/i18n/locale/ko/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ko/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "봇",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "취소",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "웹훅 URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"TITLE": "Delete bot",
- "SUBMIT": "삭제",
- "CANCEL_BUTTON_TEXT": "취소",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "삭제 확인",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "아니요, 유지합니다"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "수정",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "취소",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "엑세스 토큰",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "내용",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "웹훅 URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "취소",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/auditLogs.json b/app/javascript/dashboard/i18n/locale/ko/auditLogs.json
index fe96abe81..9bfdb6d6e 100644
--- a/app/javascript/dashboard/i18n/locale/ko/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ko/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/automation.json b/app/javascript/dashboard/i18n/locale/ko/automation.json
index 8d3d7dee4..b2e244e19 100644
--- a/app/javascript/dashboard/i18n/locale/ko/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ko/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "없음"
+ "NONE_OPTION": "없음",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "대화 음소거",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "이메일",
+ "INBOX": "받은 메시지함",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "전화 번호",
+ "STATUS": "상태",
+ "BROWSER_LANGUAGE": "언어 표시",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "국가",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/components.json b/app/javascript/dashboard/i18n/locale/ko/components.json
index b258479e5..fa25dece7 100644
--- a/app/javascript/dashboard/i18n/locale/ko/components.json
+++ b/app/javascript/dashboard/i18n/locale/ko/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/contact.json b/app/javascript/dashboard/i18n/locale/ko/contact.json
index 80374c12a..faaa14ccc 100644
--- a/app/javascript/dashboard/i18n/locale/ko/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ko/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "연락처",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "메시지",
"SEND_MESSAGE": "메시지 보내기",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "연락처 지우기",
"DELETE_DIALOG": {
"TITLE": "삭제 확인",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "예, 삭제합니다",
"API": {
"SUCCESS_MESSAGE": "연락처가 성공적으로 삭제되었습니다",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "나",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "검색과 일치하는 연락처 없음 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ko/conversation.json b/app/javascript/dashboard/i18n/locale/ko/conversation.json
index 0c3e66488..e346d0ae8 100644
--- a/app/javascript/dashboard/i18n/locale/ko/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ko/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "대화 불러오는 중",
"CANNOT_REPLY": "당신은 답장을 할 수 없습니다",
"24_HOURS_WINDOW": "24시간 메시지 창 제한",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24시간 메시지 창 제한",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "회신할 대상:",
"REMOVE_SELECTION": "선택 항목 제거",
"DOWNLOAD": "다운로드",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "해결함",
"REOPEN_ACTION": "다시 열기",
"OPEN_ACTION": "열기",
+ "MORE_ACTIONS": "More actions",
"OPEN": "더보기",
"CLOSE": "닫기",
"DETAILS": "자세히",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "삭제"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "대화 담당자가 변경됨",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "보낸 사람:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "대화 라벨",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "이전 대화",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ko/general.json b/app/javascript/dashboard/i18n/locale/ko/general.json
index 58927922a..8913d9dbf 100644
--- a/app/javascript/dashboard/i18n/locale/ko/general.json
+++ b/app/javascript/dashboard/i18n/locale/ko/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "검색",
"EMPTY_STATE": "검색 결과가 없습니다"
- }
+ },
+ "CLOSE": "닫기"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/generalSettings.json b/app/javascript/dashboard/i18n/locale/ko/generalSettings.json
index 461f76e61..2bb6ea2fb 100644
--- a/app/javascript/dashboard/i18n/locale/ko/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ko/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "계정 설정",
"SUBMIT": "설정 업데이트",
"BACK": "뒤로",
@@ -8,6 +14,26 @@
"ERROR": "설정을 업데이트할 수 없습니다, 다시 시도하십시오!",
"SUCCESS": "계정 설정이 성공적으로 업데이트됨"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "삭제",
+ "DISMISS": "취소",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "양식 오류를 수정하십시오.",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "계정 이름",
"PLACEHOLDER": "당신의 계정 이름",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "회사 지원 이메일",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "활동이 없는 경우 티켓이 자동으로 해결되는 일 수",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "업데이트",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "계정에 대해 이메일을 통한 대화 연속성이 활성화되었습니다.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Chatwoot에 대한 {latestChatwootVersion} 업데이트를 사용할 수 있습니다. 인스턴스를 업데이트하십시오.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/ko/helpCenter.json b/app/javascript/dashboard/i18n/locale/ko/helpCenter.json
index 5867d5179..510dbe738 100644
--- a/app/javascript/dashboard/i18n/locale/ko/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ko/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json
index e7d69647a..f99b7c627 100644
--- a/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "받은 메시지함 이름",
"ADD_NAME": "받은 메시지함의 이름 추가",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "값 선택"
+ "PICK_A_VALUE": "값 선택",
+ "CREATE_INBOX": "받은 메시지함 만들기"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "트위터 프로필을 채널로 추가하려면 '트위터로 로그인'을 클릭하여 트위터 프로필을 인증해야 합니다. ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "대화 전 설문",
"BUSINESS_HOURS": "영업시간",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "설정",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "자동 할당 사용",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "대화 전 사용자들에게 이름과 이메일 주소를 요구합니다."
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "메시지",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "포함된",
+ "DOES_NOT_CONTAINS": "포함되지 않은"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "영업시간 설정",
"SUBTITLE": "라이브챗 위젯의 대화용 영업시간을 설정하세요.",
@@ -753,7 +788,8 @@
"EMAIL": "이메일",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API 채널"
+ "API": "API 채널",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/integrations.json b/app/javascript/dashboard/i18n/locale/ko/integrations.json
index 3edf38947..e0b1209ca 100644
--- a/app/javascript/dashboard/i18n/locale/ko/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ko/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "취소"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "메시지 보내기...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "나",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "나",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "메시지 입력...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "업데이트",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "특징",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "이름",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "내용",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "특징",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/ko/macros.json b/app/javascript/dashboard/i18n/locale/ko/macros.json
index 3e1b1564a..a7f5c1464 100644
--- a/app/javascript/dashboard/i18n/locale/ko/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ko/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "대화 음소거",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/report.json b/app/javascript/dashboard/i18n/locale/ko/report.json
index 35458615a..eef965113 100644
--- a/app/javascript/dashboard/i18n/locale/ko/report.json
+++ b/app/javascript/dashboard/i18n/locale/ko/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "차트 데이터 불러오는 중...",
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "받은 메시지함",
"AGENT": "에이전트",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/ko/search.json b/app/javascript/dashboard/i18n/locale/ko/search.json
index 5e1785215..c88467065 100644
--- a/app/javascript/dashboard/i18n/locale/ko/search.json
+++ b/app/javascript/dashboard/i18n/locale/ko/search.json
@@ -4,12 +4,14 @@
"ALL": "모두",
"CONTACTS": "연락처",
"CONVERSATIONS": "대화",
- "MESSAGES": "메시지"
+ "MESSAGES": "메시지",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "연락처",
"CONVERSATIONS": "대화",
- "MESSAGES": "메시지"
+ "MESSAGES": "메시지",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/ko/settings.json b/app/javascript/dashboard/i18n/locale/ko/settings.json
index 2035762d8..e8a09b24d 100644
--- a/app/javascript/dashboard/i18n/locale/ko/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ko/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "엑세스 토큰",
"NOTE": "API 기반 통합을 구축하는 경우 이 토큰을 사용할 수 있음",
- "COPY": "복사"
+ "COPY": "복사",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "오프라인"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "이메일 주소",
@@ -280,6 +286,7 @@
"REPORTS": "보고서",
"SETTINGS": "설정",
"CONTACTS": "연락처",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "회사명",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "보내기"
+ "SUBMIT": "보내기",
+ "CANCEL": "취소"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/lt/agentBots.json b/app/javascript/dashboard/i18n/locale/lt/agentBots.json
index 7e2162241..46731005a 100644
--- a/app/javascript/dashboard/i18n/locale/lt/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/lt/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Botai",
"LOADING_EDITOR": "Įkeliama redagavimo priemonė...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Boto Pavadinimas",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Yra reikalingas Boto vardas."
- },
- "DESCRIPTION": {
- "LABEL": "Boto Aprašymas",
- "PLACEHOLDER": "Ką daro šis botas?"
- },
- "BOT_CONFIG": {
- "ERROR": "Įveskite CSML boto konfigūraciją aukščiau.",
- "API_ERROR": "Jūsų CSML konfigūracija neteisinga. Pataisykite ją ir bandykite dar kartą."
- },
- "SUBMIT": "Patvirtinkite ir išsaugokite"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "Sistema",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Pasirinkite agento botą",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Pasirinkti Botą"
},
"ADD": {
- "TITLE": "Konfigūruoti naują botą",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Atšaukti",
"API": {
"SUCCESS_MESSAGE": "Botas pridėtas sėkmingai.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Botų nerasta, galite sukurti botą spustelėdami mygtuką „Konfigūruoti naują robotą“ ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Gaunami Botai...",
- "TYPE": "Boto Tipas"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Ištrinti",
"TITLE": "Ištrinti Botą",
- "SUBMIT": "Ištrinti",
- "CANCEL_BUTTON_TEXT": "Atšaukti",
- "DESCRIPTION": "Ar tikrai norite ištrinti šį botą? Šis veiksmas yra neatšaukiamas.",
+ "CONFIRM": {
+ "TITLE": "Patvirtinti Ištrynimą",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Taip, Ištrinti",
+ "NO": "Ne, Išsaugoti"
+ },
"API": {
"SUCCESS_MESSAGE": "Botas ištrintas sėkmingai.",
"ERROR_MESSAGE": "Nepavyko ištrinti boto. Bandykite dar kartą."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Redaguoti",
- "LOADING": "Gaunami Botai...",
"TITLE": "Keisti Botą",
- "CANCEL_BUTTON_TEXT": "Atšaukti",
"API": {
"SUCCESS_MESSAGE": "Botas atnaujintas sėkmingai.",
"ERROR_MESSAGE": "Nepavyko atnaujinti boto. Bandykite dar kartą vėliau."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Prieeigos raktas",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Boto Pavadinimas",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Yra reikalingas Boto vardas"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Aprašymas",
+ "PLACEHOLDER": "Ką daro šis botas?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Yra reikalingas Boto vardas",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Atšaukti",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Boto Webhook",
- "CSML": "CSML Bot"
+ "WEBHOOK": "Boto Webhook"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/auditLogs.json b/app/javascript/dashboard/i18n/locale/lt/auditLogs.json
index afa824504..c0c75f156 100644
--- a/app/javascript/dashboard/i18n/locale/lt/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/lt/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/automation.json b/app/javascript/dashboard/i18n/locale/lt/automation.json
index 06da70d45..23e392120 100644
--- a/app/javascript/dashboard/i18n/locale/lt/automation.json
+++ b/app/javascript/dashboard/i18n/locale/lt/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Nėra"
+ "NONE_OPTION": "Nėra",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Pokalbis sukurtas",
+ "CONVERSATION_UPDATED": "Pokalbis atnaujintas",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Tildyti pokalbį",
+ "SNOOZE_CONVERSATION": "Atidėti Pokalbį",
+ "RESOLVE_CONVERSATION": "Išspręsti pokalbį",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Pakeisti Prioritetą",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "El. paštas",
+ "INBOX": "Gautų laiškų aplankas",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Telefono numeris",
+ "STATUS": "Būsena",
+ "BROWSER_LANGUAGE": "Naršyklės Kalba",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Šalis",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Komanda",
+ "PRIORITY": "Prioritetas"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/components.json b/app/javascript/dashboard/i18n/locale/lt/components.json
index afa22a1f7..47b7bc6f5 100644
--- a/app/javascript/dashboard/i18n/locale/lt/components.json
+++ b/app/javascript/dashboard/i18n/locale/lt/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Sužinoti daugiau",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/contact.json b/app/javascript/dashboard/i18n/locale/lt/contact.json
index 5dde32ee2..305f66b23 100644
--- a/app/javascript/dashboard/i18n/locale/lt/contact.json
+++ b/app/javascript/dashboard/i18n/locale/lt/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontaktai",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Žinutė",
"SEND_MESSAGE": "Išsiųsti pranešimą",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Trinti kontaktą",
"DELETE_DIALOG": {
"TITLE": "Patvirtinti Ištrynimą",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Taip, Ištrinti",
"API": {
"SUCCESS_MESSAGE": "Agentas ištrintas sėkmingai",
@@ -544,6 +549,9 @@
"WROTE": "parašei",
"YOU": "Jūs",
"SAVE": "Save note",
+ "EXPAND": "Išskleisti",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Nė vienas kontaktas neatitinka jūsų paieškos 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/lt/conversation.json b/app/javascript/dashboard/i18n/locale/lt/conversation.json
index 04aa31dbe..49dcba6ca 100644
--- a/app/javascript/dashboard/i18n/locale/lt/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/lt/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Pokalbiai parsiunčiami",
"CANNOT_REPLY": "Jūs negalite atsakyti dėl",
"24_HOURS_WINDOW": "Pranešimų apribojimas 24 valandoms",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Šis pokalbis jums nepriskirtas. Ar norėtumėte priskirti šį pokalbį sau?",
"ASSIGN_TO_ME": "Priskirti man",
"TWILIO_WHATSAPP_CAN_REPLY": "Į šį pokalbį galite atsakyti tik naudodami šablono pranešimą, nes",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Pranešimų apribojimas 24 valandoms",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Jūs atsakote į:",
"REMOVE_SELECTION": "Pašalinti Pasirinkimą",
"DOWNLOAD": "Parsisiųsti",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Išspręsti",
"REOPEN_ACTION": "Atidarykite iš naujo",
"OPEN_ACTION": "Atidaryti",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Daugiau",
"CLOSE": "Uždaryti",
"DETAILS": "smulkesnė informacija",
@@ -115,6 +118,11 @@
"FAILED": "Nepavyko pakeisti prioriteto. Prašau, pabandykite dar kartą."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Ištrinti"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Pažymėti kaip laukiantį",
"RESOLVED": "Pažymėti kaip išspręstą",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Priskirti etiketę",
"AGENTS_LOADING": "Agentai užkraunami...",
"ASSIGN_TEAM": "Priskirti komandą",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Pokalbis id {conversationId} priskirtas \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Etiketė sėkmingai priskirta",
"ASSIGN_LABEL_FAILED": "Etiketės priskirti nepavyko",
"CHANGE_TEAM": "Pasikeitė pokalbių komanda",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Failas viršija {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB priedo apribojimą",
"MESSAGE_ERROR": "Nepavyko išsiųsti šio pranešimo, bandykite dar kartą vėliau",
"SENT_BY": "Siuntėjas:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Pokalbio veiksmai",
"CONVERSATION_LABELS": "Pokalbio Etiketės",
"CONVERSATION_INFO": "Pokalbio Informacija",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Kontakto Požymiai",
"PREVIOUS_CONVERSATION": "Ankstesni pokalbiai",
"MACROS": "Makrokomandos",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/lt/general.json b/app/javascript/dashboard/i18n/locale/lt/general.json
index ded0ebaef..ecbf9cda9 100644
--- a/app/javascript/dashboard/i18n/locale/lt/general.json
+++ b/app/javascript/dashboard/i18n/locale/lt/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Ieškoti",
"EMPTY_STATE": "Nieko nerasta"
- }
+ },
+ "CLOSE": "Uždaryti"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/generalSettings.json b/app/javascript/dashboard/i18n/locale/lt/generalSettings.json
index 301cb0387..bd62ea64e 100644
--- a/app/javascript/dashboard/i18n/locale/lt/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/lt/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Paskyros nustatymai",
"SUBMIT": "Atnaujinti nustatymai",
"BACK": "Atgal",
@@ -8,6 +14,26 @@
"ERROR": "Nepavyko atnaujinti nustatymų, bandykite dar kartą!",
"SUCCESS": "Sėkmingai atnaujinti paskyros nustatymai"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Ištrinti",
+ "DISMISS": "Atšaukti",
+ "PLACE_HOLDER": "Įveskite {accountName}, kad patvirtintumėte"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Ištaisykite formos klaidas",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Paskyros ID",
"NOTE": "Šis ID reikalingas, jei kuriate API pagrįstą integraciją"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Paskyros vardas",
"PLACEHOLDER": "Tavo paskyros vardas",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Jūsų įmonės pagalbos el. paštas",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Dienų skaičius, po kurio bilietas turi būti automatiškai uždarytas, jei nėra jokios veiklos",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Įveskite tinkamą automatinio išsprendimo trukmę (mažiausiai 1 diena ir daugiausia 999 dienos)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Atnaujinti",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Jūsų paskyroje leistas pokalbių tęstinumas su el. laiškais.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Yra Chatwoot naujinimas {latestChatwootVersion}. Atnaujinkite savo versiją.",
"LEARN_MORE": "Sužinoti daugiau",
"PAYMENT_PENDING": "Laukiama jūsų mokėjimo. Atnaujinkite savo mokėjimo informaciją, kad galėtumėte toliau naudoti Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Jūsų paskyra viršijo naudojimo apribojimus, atnaujinkite savo planą, kad galėtumėte toliau naudoti Chatwoot",
"OPEN_BILLING": "Atidaryti mokėjimą"
},
diff --git a/app/javascript/dashboard/i18n/locale/lt/helpCenter.json b/app/javascript/dashboard/i18n/locale/lt/helpCenter.json
index fdd7548d3..7df46ff2c 100644
--- a/app/javascript/dashboard/i18n/locale/lt/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/lt/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Yra reikalingas slug"
+ "ERROR": "Yra reikalingas slug",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json
index 5d9ba0fe9..2ca3dd7a9 100644
--- a/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Gautų Laiškų Aplanko Pavadinimas",
"ADD_NAME": "Prašome įrašyti gautų laiškų aplanko pavadinimą",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pasirinkti reikšmę"
+ "PICK_A_VALUE": "Pasirinkti reikšmę",
+ "CREATE_INBOX": "Sukurti Gautų Laiškų Aplanką"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Norėdami pridėti savo Twitter profilį kaip kanalą, turite patvirtinti savo Twitter profilį spustelėdami „Prisijungti naudojant Twitter“ ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Anketa, rodoma prieš pokalbio internetu pradžią",
"BUSINESS_HOURS": "Darbo valandos",
"WIDGET_BUILDER": "Valdiklių kūrimo priemonė",
- "BOT_CONFIGURATION": "Boto konfiguracija"
+ "BOT_CONFIGURATION": "Boto konfiguracija",
+ "CSAT": "CSAT"
},
"SETTINGS": "Nustatymai",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Leisti el. pašto surinkimo dėžutę",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Naujame pokalbyje leiskite arba drauskite el. pašto surinkimo dėžutę",
"AUTO_ASSIGNMENT": "Įjunkti automatinį priskyrimą",
- "ENABLE_CSAT": "Leisti CSAT",
"SENDER_NAME_SECTION": "Leisti agento vardą el. pašte",
- "ENABLE_CSAT_SUB_TEXT": "Leisti/neleisti CSAT (klientų pasitenkinimo) apklausą, kai baigsite pokalbį",
"SENDER_NAME_SECTION_TEXT": "Įjungti/išjungti agento vardo rodymą el. pašte, jei išjungta, bus rodomas įmonės pavadinimas",
"ENABLE_CONTINUITY_VIA_EMAIL": "Leisti pokalbio tęstinumą el. paštu",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Jei kontaktinis el. pašto adresas yra pasiekiamas, pokalbiai bus tęsiami el. paštu.",
@@ -568,6 +577,32 @@
"LABEL": "Prieš pradėdami pokalbį lankytojai turėtų nurodyti savo vardą ir el. pašto adresą"
}
},
+ "CSAT": {
+ "TITLE": "Leisti CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Žinutė",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "sudėtyje yra",
+ "DOES_NOT_CONTAINS": "sudėtyje nėra"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Nustatykite savo pasiekiamumą",
"SUBTITLE": "Nustatykite savo pasiekiamumą tiesioginio pokalbio valdiklyje",
@@ -753,7 +788,8 @@
"EMAIL": "El. paštas",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API kanalas"
+ "API": "API kanalas",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/integrations.json b/app/javascript/dashboard/i18n/locale/lt/integrations.json
index 4f0583ead..00e13c468 100644
--- a/app/javascript/dashboard/i18n/locale/lt/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/lt/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Pranešimas atnaujintas",
"WEBWIDGET_TRIGGERED": "Tiesioginio pokalbio valdiklis, kurį atidarė vartotojas",
"CONTACT_CREATED": "Sukurtas kontaktas",
- "CONTACT_UPDATED": "Kontaktas atnaujintas"
+ "CONTACT_UPDATED": "Kontaktas atnaujintas",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Taip, Trinti",
"CANCEL": "Atšaukti"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Išsiųsti pranešimą...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Jūs",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Jūs",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Parašykite pranešimą...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Atnaujinti",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Funkcijos",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Vardas",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Aprašymas",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Funkcijos",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/lt/macros.json b/app/javascript/dashboard/i18n/locale/lt/macros.json
index 6a7fa09b1..fca14391a 100644
--- a/app/javascript/dashboard/i18n/locale/lt/macros.json
+++ b/app/javascript/dashboard/i18n/locale/lt/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Tildyti pokalbį",
+ "SNOOZE_CONVERSATION": "Atidėti Pokalbį",
+ "RESOLVE_CONVERSATION": "Išspręsti pokalbį",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Pakeisti Prioritetą",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/report.json b/app/javascript/dashboard/i18n/locale/lt/report.json
index f26419eed..37c0be59d 100644
--- a/app/javascript/dashboard/i18n/locale/lt/report.json
+++ b/app/javascript/dashboard/i18n/locale/lt/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Etikečių Apžvalga",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Įkeliami diagramos duomenys...",
"NO_ENOUGH_DATA": "Negavome pakankamai duomenų, kad galėtume sugeneruoti ataskaitą. Bandykite dar kartą vėliau.",
"DOWNLOAD_LABEL_REPORTS": "Parsisiųsti etiketės ataskaitas",
@@ -559,6 +560,7 @@
"INBOX": "Gautų laiškų aplankas",
"AGENT": "Agentas",
"TEAM": "Komanda",
+ "LABEL": "Etiketė",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/lt/search.json b/app/javascript/dashboard/i18n/locale/lt/search.json
index 4e2c4f78a..79f249960 100644
--- a/app/javascript/dashboard/i18n/locale/lt/search.json
+++ b/app/javascript/dashboard/i18n/locale/lt/search.json
@@ -4,12 +4,14 @@
"ALL": "Visi",
"CONTACTS": "Kontaktai",
"CONVERSATIONS": "Pokalbiai",
- "MESSAGES": "Pranešimai"
+ "MESSAGES": "Pranešimai",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontaktai",
"CONVERSATIONS": "Pokalbiai",
- "MESSAGES": "Pranešimai"
+ "MESSAGES": "Pranešimai",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/lt/settings.json b/app/javascript/dashboard/i18n/locale/lt/settings.json
index eb3bd2333..5b6e3ace2 100644
--- a/app/javascript/dashboard/i18n/locale/lt/settings.json
+++ b/app/javascript/dashboard/i18n/locale/lt/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Prieeigos raktas",
"NOTE": "Šis prieigos raktas gali būti naudojamas, jei kuriate API pagrįstą integraciją",
- "COPY": "Kopijuoti"
+ "COPY": "Kopijuoti",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Atsijungęs"
},
"SET_AVAILABILITY_SUCCESS": "Pasiekiamumas nustatytas sėkmingai",
- "SET_AVAILABILITY_ERROR": "Nepavyko nustatyti pasiekiamumo, bandykite dar kartą"
+ "SET_AVAILABILITY_ERROR": "Nepavyko nustatyti pasiekiamumo, bandykite dar kartą",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Jūsų el. pašto adresas",
@@ -280,6 +286,7 @@
"REPORTS": "Ataskaitos",
"SETTINGS": "Nustatymai",
"CONTACTS": "Kontaktai",
+ "ACTIVE": "Aktyvus",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Įmonės pavadinimas",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Pateikti"
+ "SUBMIT": "Pateikti",
+ "CANCEL": "Atšaukti"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/lv/agentBots.json b/app/javascript/dashboard/i18n/locale/lv/agentBots.json
index 779c2c085..bc51df4f1 100644
--- a/app/javascript/dashboard/i18n/locale/lv/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/lv/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Roboti",
"LOADING_EDITOR": "Notiek redaktora ielāde...",
- "DESCRIPTION": "Aģenti Roboti ir kā pasakainākie jūsu komandas locekļi. Viņi var tikt galā ar sīkumiem, lai jūs varētu koncentrēties uz svarīgām lietām. Jūs varat pārvaldīt savus robotus šajā lapā vai izveidot jaunus, izmantojot pogu 'Konfigurēt jaunu robotu'.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Uzzināt vairāk par aģentiem robotiem",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Robota nosaukums",
- "PLACEHOLDER": "Piešķiriet robotam nosaukumu.",
- "ERROR": "Jānorāda robota nosaukums."
- },
- "DESCRIPTION": {
- "LABEL": "Robota apraksts",
- "PLACEHOLDER": "Ko dara šis robots?"
- },
- "BOT_CONFIG": {
- "ERROR": "Lūdzu, ievadiet sava robota CSML konfigurāciju.",
- "API_ERROR": "Jūsu CSML konfigurācija nav derīga. Lūdzu, izlabojiet to un mēģiniet vēlreiz."
- },
- "SUBMIT": "Apstiprināt un saglabāt"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "Sistēma",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Izvēlieties aģentu robotu",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Izvēlieties robotu"
},
"ADD": {
- "TITLE": "Konfigurēt jaunu robotu",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Atcelt",
"API": {
"SUCCESS_MESSAGE": "Robots ir veiksmīgi pievienots.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Roboti nav atrasti. Jūs varat izveidot robotu, noklikšķinot uz 'Konfigurēt jaunu robotu' pogas ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Notiek robotu iegūšana...",
- "TYPE": "Robota tips"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Dzēst",
"TITLE": "Dzēst robotu",
- "SUBMIT": "Dzēst",
- "CANCEL_BUTTON_TEXT": "Atcelt",
- "DESCRIPTION": "Vai tiešām vēlaties dzēst šo robotu? Šī darbība ir neatgriezeniska.",
+ "CONFIRM": {
+ "TITLE": "Apstiprināt Dzēšanu",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Jā, Dzēst",
+ "NO": "Nē, Paturēt"
+ },
"API": {
"SUCCESS_MESSAGE": "Robots ir veiksmīgi izdzēsts.",
"ERROR_MESSAGE": "Nevarēja izdzēst robotu. Lūdzu mēģiniet vēlreiz."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Rediģēt",
- "LOADING": "Notiek robotu iegūšana...",
"TITLE": "Rediģēt robotu",
- "CANCEL_BUTTON_TEXT": "Atcelt",
"API": {
"SUCCESS_MESSAGE": "Robots ir veiksmīgi atjaunināts.",
"ERROR_MESSAGE": "Nevarēja atjaunināt robotu. Lūdzu mēģiniet vēlreiz."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Piekļuves Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Robota nosaukums",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Jānorāda robota nosaukums"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Apraksts",
+ "PLACEHOLDER": "Ko dara šis robots?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Jānorāda robota nosaukums",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Atcelt",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook robots",
- "CSML": "CSML robots"
+ "WEBHOOK": "Webhook robots"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/auditLogs.json b/app/javascript/dashboard/i18n/locale/lv/auditLogs.json
index 8f5fcef6c..180eb969f 100644
--- a/app/javascript/dashboard/i18n/locale/lv/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/lv/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} atjaunināja konta konfigurāciju (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/automation.json b/app/javascript/dashboard/i18n/locale/lv/automation.json
index 2cc8db6b6..557857b9d 100644
--- a/app/javascript/dashboard/i18n/locale/lv/automation.json
+++ b/app/javascript/dashboard/i18n/locale/lv/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "Ir nepieciešams vismaz viens nosacījums",
"ATLEAST_ONE_ACTION_REQUIRED": "Ir nepieciešama vismaz viena darbība"
},
- "NONE_OPTION": "Nav"
+ "NONE_OPTION": "Nav",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Saruna izveidota",
+ "CONVERSATION_UPDATED": "Saruna Atjaunināta",
+ "MESSAGE_CREATED": "Ziņojums Izveidots",
+ "CONVERSATION_OPENED": "Saruna Atvērta"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Piešķirt Aģentam",
+ "ASSIGN_TEAM": "Piešķirt Komandai",
+ "ADD_LABEL": "Pievienot Etiķeti",
+ "REMOVE_LABEL": "Noņemt Etiķeti",
+ "SEND_EMAIL_TO_TEAM": "Nosūtīt E-pastu Komandai",
+ "SEND_EMAIL_TRANSCRIPT": "Nosūtīt uz E-pastu Transkriptu",
+ "MUTE_CONVERSATION": "Izslēgt Sarunu",
+ "SNOOZE_CONVERSATION": "Atlikt Sarunu",
+ "RESOLVE_CONVERSATION": "Atrisināt Sarunu",
+ "SEND_WEBHOOK_EVENT": "Nosūtīt Webhook Notikumu",
+ "SEND_ATTACHMENT": "Sūtīt Pielikumu",
+ "SEND_MESSAGE": "Nosūtīt Ziņojumu",
+ "CHANGE_PRIORITY": "Mainīt prioritāti",
+ "ADD_SLA": "Pievienot SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Ziņojuma Tips",
+ "MESSAGE_CONTAINS": "Ziņojums Satur",
+ "EMAIL": "E-pasts",
+ "INBOX": "Iesūtne",
+ "CONVERSATION_LANGUAGE": "Sarunas Valoda",
+ "PHONE_NUMBER": "Telefona numurs",
+ "STATUS": "Statuss",
+ "BROWSER_LANGUAGE": "Pārlūkprogrammas Valoda",
+ "MAIL_SUBJECT": "E-pasta Tēma",
+ "COUNTRY_NAME": "Valsts",
+ "REFERER_LINK": "Novirzītāja Saite",
+ "ASSIGNEE_NAME": "Uzdevuma saņēmējs",
+ "TEAM_NAME": "Komanda",
+ "PRIORITY": "Prioritāte"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/components.json b/app/javascript/dashboard/i18n/locale/lv/components.json
index 7a46b278c..33f36c584 100644
--- a/app/javascript/dashboard/i18n/locale/lv/components.json
+++ b/app/javascript/dashboard/i18n/locale/lv/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Uzzināt vairāk",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/contact.json b/app/javascript/dashboard/i18n/locale/lv/contact.json
index 9a6877fbd..3697015a0 100644
--- a/app/javascript/dashboard/i18n/locale/lv/contact.json
+++ b/app/javascript/dashboard/i18n/locale/lv/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontaktpersonas",
"SEARCH_TITLE": "Meklēt kontaktpersonas",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Meklēt...",
"MESSAGE_BUTTON": "Ziņojums",
"SEND_MESSAGE": "Sūtīt ziņojumu",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Pievienot Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Dzēst kontaktpersonu",
"DELETE_DIALOG": {
"TITLE": "Apstiprināt Dzēšanu",
- "DESCRIPTION": "Vai tiešām vēlaties dzēst šo {contactName} kontaktpersonu?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Jā, Dzēst",
"API": {
"SUCCESS_MESSAGE": "Kontaktpersona ir veiksmīgi izdzēsta",
@@ -544,6 +549,9 @@
"WROTE": "rakstīja",
"YOU": "Jūs",
"SAVE": "Saglabāt piezīmi",
+ "EXPAND": "Izvērst",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "Ar šo kontaktpersonu nav saistītu piezīmju. Varat pievienot piezīmi, ierakstot iepriekšējā lodziņā."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Sāciet pievienot jaunas kontaktpersonas, noklikšķinot uz tālāk esošās pogas",
"BUTTON_LABEL": "Pievienot kontaktpersonu",
"SEARCH_EMPTY_STATE_TITLE": "Neviena kontaktpersona neatbilst jūsu meklēšanas vaicājumam 🔍",
- "LIST_EMPTY_STATE_TITLE": "Šajā skatā nav pieejama neviena kontaktpersona 📋"
+ "LIST_EMPTY_STATE_TITLE": "Šajā skatā nav pieejama neviena kontaktpersona 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/lv/conversation.json b/app/javascript/dashboard/i18n/locale/lv/conversation.json
index 67f46488e..b69618141 100644
--- a/app/javascript/dashboard/i18n/locale/lv/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/lv/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Notiek sarunu ielāde",
"CANNOT_REPLY": "Jūs nevarat atbildēt, jo",
"24_HOURS_WINDOW": "24 stundu ziņojuma loga ierobežojums",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Šī saruna nav Jums piešķirta. Vai vēlaties piešķirt šo sarunu sev?",
"ASSIGN_TO_ME": "Piešķirt sev",
"TWILIO_WHATSAPP_CAN_REPLY": "Jūs varat atbildēt uz šo sarunu, tikai izmantojot veidnes ziņojumu, jo",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 stundu ziņojuma loga ierobežojums",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Jūs atbildat uz:",
"REMOVE_SELECTION": "Noņemt Izvēli",
"DOWNLOAD": "Lejupielādēt",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Atrisināt",
"REOPEN_ACTION": "Atkārtoti atvērt",
"OPEN_ACTION": "Atvērt",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Papildu",
"CLOSE": "Aizvērt",
"DETAILS": "detalizēta informācija",
@@ -115,6 +118,11 @@
"FAILED": "Nevarēja nomainīt prioritāti. Lūdzu, mēģiniet vēlreiz."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Dzēst"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Atzīmēt kā neapstiprinātu",
"RESOLVED": "Atzīmēt kā atrisinātu",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Piešķirt etiķeti",
"AGENTS_LOADING": "Notiek aģentu ielāde...",
"ASSIGN_TEAM": "Piešķirt komandu",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Sarunas id {conversationId} piešķirts \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Etiķete ir veiksmīgi piešķirta",
"ASSIGN_LABEL_FAILED": "Etiķetes piešķiršana neizdevās",
"CHANGE_TEAM": "Sarunu komanda mainīta",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Fails pārsniedz {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB pielikuma ierobežojumu",
"MESSAGE_ERROR": "Nevar nosūtīt šo ziņojumu. Lūdzu, vēlāk mēģiniet vēlreiz",
"SENT_BY": "Sūtīja:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Sarunas Darbības",
"CONVERSATION_LABELS": "Sarunu Etiķetes",
"CONVERSATION_INFO": "Sarunas Informācija",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Kontaktpersonas Īpašības",
"PREVIOUS_CONVERSATION": "Iepriekšējās Sarunas",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/lv/general.json b/app/javascript/dashboard/i18n/locale/lv/general.json
index ba2b8cf5a..bd432e7b6 100644
--- a/app/javascript/dashboard/i18n/locale/lv/general.json
+++ b/app/javascript/dashboard/i18n/locale/lv/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Meklēt",
"EMPTY_STATE": "Nav atrasts"
- }
+ },
+ "CLOSE": "Aizvērt"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/generalSettings.json b/app/javascript/dashboard/i18n/locale/lv/generalSettings.json
index 04a8ddf5a..fd7067904 100644
--- a/app/javascript/dashboard/i18n/locale/lv/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/lv/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "Jūs esat pārsniedzis sarunu ierobežojumu. Hacker plāns pieļauj tikai 500 sarunas.",
+ "INBOXES": "Jūs esat pārsniedzis iesūtnes ierobežojumu. Hacker plāns atbalsta tikai vietnes tiešraides tērzēšanu. Papildu iesūtnēm, piemēram, e-pastam, WhatsApp utt., ir nepieciešams maksas plāns.",
+ "AGENTS": "Jūs esat pārsniedzis aģentu ierobežojumu. Hakeru plānā ir atļauti tikai 2 aģenti.",
+ "NON_ADMIN": "Lūdzu, sazinieties ar savu administratoru, lai modernizētu plānu un turpinātu izmantot visas funkcijas."
+ },
"TITLE": "Konta iestatījumi",
"SUBMIT": "Atjaunināt iestatījumus",
"BACK": "Atpakaļ",
@@ -8,6 +14,26 @@
"ERROR": "Nevarēja atjaunināt iestatījumus, mēģiniet vēlreiz!",
"SUCCESS": "Konta iestatījumi ir veiksmīgi atjaunināti"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Dzēsiet savu Kontu",
+ "NOTE": "Tiklīdz izdzēsīsiet savu kontu, visi Jūsu dati tiks dzēsti.",
+ "BUTTON_TEXT": "Izdzēst Savu Kontu",
+ "CONFIRM": {
+ "TITLE": "Dzēst Kontu",
+ "MESSAGE": "Konta dzēšana ir neatgriezeniska. Ievadiet sava konta nosaukumu, lai apstiprinātu, ka vēlaties to neatgriezeniski dzēst.",
+ "BUTTON_TEXT": "Dzēst",
+ "DISMISS": "Atcelt",
+ "PLACE_HOLDER": "Lai apstiprinātu, lūdzu, uzrakstiet {accountName}"
+ },
+ "SUCCESS": "Konts atzīmēts dzēšanai",
+ "FAILURE": "Nevarēja izdzēst kontu, mēģiniet vēlreiz!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Kontu ir Ieplānots Dzēst",
+ "MESSAGE_MANUAL": "Šo kontu ir ieplānots dzēst šādā datumā: {deletionDate}. To pieprasīja administrators. Jūs varat atcelt dzēšanu pirms šī datuma.",
+ "MESSAGE_INACTIVITY": "Šo kontu ir plānots dzēst šādā datumā: {deletionDate} konta neaktivitātes dēļ. Jūs varat atcelt dzēšanu pirms šī datuma.",
+ "CLEAR_BUTTON": "Atcelt Ieplānoto Dzēšanu"
+ }
+ },
"FORM": {
"ERROR": "Lūdzu, izlabojiet veidlapas kļūdas",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Konta ID",
"NOTE": "Šis ID ir nepieciešams, ja veidojat uz API balstītu integrāciju"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Konta nosaukums",
"PLACEHOLDER": "Jūsu konta nosaukums",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Jūsu uzņēmuma atbalsta e-pasts",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Dienu skaits pēc kā biļetei ir automātiski jāatrisinās, ja nenotiek nekādas darbības",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Lūdzu, ievadiet derīgu automātiskās atrisināšanas ilgumu (vismaz 1 diena un ne vairāk kā 999 dienas)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Atjaunināt",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Jūsu kontam ir iespējota sarunu nepārtrauktība ar e-pastiem.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Ir pieejams Chatwoot {latestChatwootVersion} jauninājums. Lūdzu, atjauniniet savu programmatūru.",
"LEARN_MORE": "Uzzināt vairāk",
"PAYMENT_PENDING": "Jūsu maksājums tiek gaidīts. Lūdzu, atjauniniet savu maksājumu informāciju, lai turpinātu lietot Chatwoot",
+ "UPGRADE": "Modernizējieties, lai turpinātu lietot Chatwoot",
"LIMITS_UPGRADE": "Jūsu konts ir pārsniedzis lietošanas ierobežojumus. Lūdzu, uzlabojiet savu abonementu, lai turpinātu izmantot Chatwoot",
"OPEN_BILLING": "Atvērt norēķinus"
},
diff --git a/app/javascript/dashboard/i18n/locale/lv/helpCenter.json b/app/javascript/dashboard/i18n/locale/lv/helpCenter.json
index fa8a2ea38..4e7f73e8b 100644
--- a/app/javascript/dashboard/i18n/locale/lv/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/lv/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "lietotāja rokasgrāmata",
- "ERROR": "Nepieciešams slug"
+ "ERROR": "Nepieciešams slug",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json
index f6ab0ec47..616b11de9 100644
--- a/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Iesūtnes Nosaukums",
"ADD_NAME": "Pievienojiet savas iesūtnes nosaukumu",
"PICK_NAME": "Lūdzu ievadiet Iesūtnes nosaukumu",
- "PICK_A_VALUE": "Izvēlieties vērtību"
+ "PICK_A_VALUE": "Izvēlieties vērtību",
+ "CREATE_INBOX": "Izveidot Iesūtni"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Turpināt ar Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Pievienot savu Instagram Profilu",
+ "HELP": "Lai pievienotu savu Instagram profilu kā kanālu, jums ir jāautentificē savs Instagram profils, noklikšķinot uz 'Turpināt ar Instagram' ",
+ "ERROR_MESSAGE": "Veidojot savienojumu ar Instagram, radās kļūda. Lūdzu, mēģiniet vēlreiz",
+ "ERROR_AUTH": "Veidojot savienojumu ar Instagram, radās kļūda. Lūdzu, mēģiniet vēlreiz",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Lai pievienotu savu Twitter profilu kā kanālu, Jums ir jāautentificē savs Twitter profils, noklikšķinot uz \"Pierakstīties ar Twitter\"' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pirms-Tērzēšanas Veidlapa",
"BUSINESS_HOURS": "Darba Laiks",
"WIDGET_BUILDER": "Logrīku Veidotājs",
- "BOT_CONFIGURATION": "Robota Konfigurācija"
+ "BOT_CONFIGURATION": "Robota Konfigurācija",
+ "CSAT": "CSAT"
},
"SETTINGS": "Iestatījumi",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Iespējot e-pasta iegūšanas lodziņu",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Iespējot vai atspējot e-pasta iegūšanas lodziņu jaunai sarunai",
"AUTO_ASSIGNMENT": "Iespējot automātisko piešķiršanu",
- "ENABLE_CSAT": "Iespējot CSAT",
"SENDER_NAME_SECTION": "Iespējot Aģenta Vārdu E-pastā",
- "ENABLE_CSAT_SUB_TEXT": "Iespējot/Atspējot CSAT (klientu apmierinātības) aptauju pēc sarunas atrisināšanas",
"SENDER_NAME_SECTION_TEXT": "Iespējot/Atspējot aģenta vārda rādīšanu e-pastā. Ja tas ir atspējots, tiks rādīts uzņēmuma nosaukums",
"ENABLE_CONTINUITY_VIA_EMAIL": "Iespējot sarunas nepārtrauktību, izmantojot e-pastu",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Sarunas turpināsies pa e-pastu, ja saziņas e-pasta adrese ir pieejama.",
@@ -568,6 +577,32 @@
"LABEL": "Apmeklētājiem pirms tērzēšanas ir jānorāda savs vārds un e-pasta adrese"
}
},
+ "CSAT": {
+ "TITLE": "Iespējot CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Ziņojums",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "satur",
+ "DOES_NOT_CONTAINS": "nesatur"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Iestatīt savu pieejamību",
"SUBTITLE": "Iestatīt savu pieejamību tiešraides tērzēšanas logrīkā",
@@ -753,7 +788,8 @@
"EMAIL": "E-pasts",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Kanāls"
+ "API": "API Kanāls",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/integrations.json b/app/javascript/dashboard/i18n/locale/lv/integrations.json
index f7d5e625f..c230ded21 100644
--- a/app/javascript/dashboard/i18n/locale/lv/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/lv/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Ziņojums atjaunināts",
"WEBWIDGET_TRIGGERED": "Lietotājs atvēra tiešsaistes tērzēšanas logrīku",
"CONTACT_CREATED": "Kontaktpersona izveidota",
- "CONTACT_UPDATED": "Kontaktpersona atjaunināta"
+ "CONTACT_UPDATED": "Kontaktpersona atjaunināta",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Problēma ir veiksmīgi atsaistīta",
"ERROR": "Atsaistot jautājumu radās kļūda. Lūdzu, mēģiniet vēlreiz"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Vai tiešām vēlaties dzēst integrāciju?",
"MESSAGE": "Vai tiešām vēlaties dzēst integrāciju?",
"CONFIRM": "Jā, dzēst",
"CANCEL": "Atcelt"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Kapteinis",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Kopilots",
+ "TRY_THESE_PROMPTS": "Pamēģiniet",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Sūtīt ziņojumu...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Kapteinis domā",
"YOU": "Jūs",
"USE": "Izmantot šo",
"RESET": "Atiestatīt",
- "SELECT_ASSISTANT": "Izvēlēties Asistentu"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Izvēlēties Asistentu",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Jūs",
+ "ASSISTANT": "Asistents",
+ "MESSAGE_PLACEHOLDER": "Rakstiet savu ziņojumu...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Modernizējiet abonementu, lai izmantotu Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "Jūs varat jebkurā laikā mainīt vai atcelt savu versiju"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI funkcija ir pieejama tikai maksas abonementā.",
"UPGRADE_PROMPT": "Modernizējiet savu abonementu, lai iegūtu piekļuvi viruālajiem asistentiem un copilot.",
"ASK_ADMIN": "Lai pārietu uz maksas versiju, lūdzu sazinieties ar savu administratoru."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Asistenti",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Izveidot jaunu asistentu",
"DELETE": {
"TITLE": "Vai tiešām vēlaties izdzēst asistentu?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "Veidojot asistentu radās kļūda. Lūdzu, mēģiniet vēlreiz."
},
"FORM": {
+ "UPDATE": "Atjaunināt",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Īpašības",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Asistenta Vārds",
- "PLACEHOLDER": "Ievadiet asistenta vārdu",
- "ERROR": "Lūdzu, norādiet asistenta vārdu"
+ "LABEL": "Nosaukums",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Asistenta Apraksts",
- "PLACEHOLDER": "Aprakstiet, kā un kur šis asistents tiks izmantots",
- "ERROR": "Nepieciešams apraksts"
+ "LABEL": "Apraksts",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Produkta Nosaukums",
- "PLACEHOLDER": "Ievadiet produkta nosaukumu, kam šis asistents ir paredzēts",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "Nepieciešams produkta nosaukums"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Īpašības",
"ALLOW_CONVERSATION_FAQS": "Ģenerēt bieži uzdotos jautājumus no atrisinātajām sarunām",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Atjaunināt asistentu",
"SUCCESS_MESSAGE": "Asistents ir veiksmīgi atjaunināts",
- "ERROR_MESSAGE": "Atjauninot asistentu radās kļūda. Lūdzu, mēģiniet vēlreiz."
+ "ERROR_MESSAGE": "Atjauninot asistentu radās kļūda. Lūdzu, mēģiniet vēlreiz.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Rediģēt Asistentu",
diff --git a/app/javascript/dashboard/i18n/locale/lv/macros.json b/app/javascript/dashboard/i18n/locale/lv/macros.json
index fad634e2e..3a9f99744 100644
--- a/app/javascript/dashboard/i18n/locale/lv/macros.json
+++ b/app/javascript/dashboard/i18n/locale/lv/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Nepieciešami darbības parametri",
"ATLEAST_ONE_CONDITION_REQUIRED": "Ir nepieciešams vismaz viens nosacījums",
"ATLEAST_ONE_ACTION_REQUIRED": "Ir nepieciešama vismaz viena darbība"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Piešķirt Komandai",
+ "ASSIGN_AGENT": "Piešķirt Aģentu",
+ "ADD_LABEL": "Pievienot Etiķeti",
+ "REMOVE_LABEL": "Noņemt Etiķeti",
+ "REMOVE_ASSIGNED_TEAM": "Noņemt Piešķirto Komandu",
+ "SEND_EMAIL_TRANSCRIPT": "Nosūtīt uz E-pastu Transkriptu",
+ "MUTE_CONVERSATION": "Izslēgt Sarunu",
+ "SNOOZE_CONVERSATION": "Atlikt Sarunu",
+ "RESOLVE_CONVERSATION": "Atrisināt Sarunu",
+ "SEND_ATTACHMENT": "Sūtīt Pielikumu",
+ "SEND_MESSAGE": "Nosūtīt Ziņojumu",
+ "CHANGE_PRIORITY": "Mainīt prioritāti",
+ "ADD_PRIVATE_NOTE": "Pievienot Privātu Piezīmi",
+ "SEND_WEBHOOK_EVENT": "Nosūtīt Webhook Notikumu"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/report.json b/app/javascript/dashboard/i18n/locale/lv/report.json
index d6fa9c9cb..4f98e7974 100644
--- a/app/javascript/dashboard/i18n/locale/lv/report.json
+++ b/app/javascript/dashboard/i18n/locale/lv/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Etiķešu Pārskats",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Notiek diagrammas datu ielāde...",
"NO_ENOUGH_DATA": "Mēs neesam saņēmuši pietiekami daudz datu punktu, lai izveidotu pārskatu. Lūdzu, vēlāk mēģiniet vēlreiz.",
"DOWNLOAD_LABEL_REPORTS": "Lejupielādēt etiķešu pārskatus",
@@ -559,6 +560,7 @@
"INBOX": "Iesūtne",
"AGENT": "Aģents",
"TEAM": "Komanda",
+ "LABEL": "Etiķete",
"AVG_RESOLUTION_TIME": "Vid. Atrisināšanas Laiks",
"AVG_FIRST_RESPONSE_TIME": "Vid. Pirmās Atbildes Laiks",
"AVG_REPLY_TIME": "Vid. Klientu Gaidīšanas Laiks",
diff --git a/app/javascript/dashboard/i18n/locale/lv/search.json b/app/javascript/dashboard/i18n/locale/lv/search.json
index f53b611bb..0aecb6b4e 100644
--- a/app/javascript/dashboard/i18n/locale/lv/search.json
+++ b/app/javascript/dashboard/i18n/locale/lv/search.json
@@ -4,12 +4,14 @@
"ALL": "Visi",
"CONTACTS": "Kontaktpersonas",
"CONVERSATIONS": "Sarunas",
- "MESSAGES": "Ziņojumi"
+ "MESSAGES": "Ziņojumi",
+ "ARTICLES": "Raksti"
},
"SECTION": {
"CONTACTS": "Kontaktpersonas",
"CONVERSATIONS": "Sarunas",
- "MESSAGES": "Ziņojumi"
+ "MESSAGES": "Ziņojumi",
+ "ARTICLES": "Raksti"
},
"VIEW_MORE": "Skatīt vairāk",
"LOAD_MORE": "Ielādēt vairāk",
diff --git a/app/javascript/dashboard/i18n/locale/lv/settings.json b/app/javascript/dashboard/i18n/locale/lv/settings.json
index 7a21aaa0e..64fd68e70 100644
--- a/app/javascript/dashboard/i18n/locale/lv/settings.json
+++ b/app/javascript/dashboard/i18n/locale/lv/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Piekļuves Token",
"NOTE": "Šo token var izmantot, ja veidojat uz API balstītu integrāciju",
- "COPY": "Kopēt"
+ "COPY": "Kopēt",
+ "RESET": "Atiestatīt",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Brīdinājumi",
@@ -185,7 +190,8 @@
"OFFLINE": "Bezsaistē"
},
"SET_AVAILABILITY_SUCCESS": "Pieejamība ir veiksmīgi iestatīta",
- "SET_AVAILABILITY_ERROR": "Nevarēja iestatīt pieejamību. Lūdzu, mēģiniet vēlreiz"
+ "SET_AVAILABILITY_ERROR": "Nevarēja iestatīt pieejamību. Lūdzu, mēģiniet vēlreiz",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Jūsu e-pasta adrese",
@@ -280,6 +286,7 @@
"REPORTS": "Pārskati",
"SETTINGS": "Iestatījumi",
"CONTACTS": "Kontaktpersonas",
+ "ACTIVE": "Aktīvs",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Asistenti",
"CAPTAIN_DOCUMENTS": "Dokumenti",
@@ -387,7 +394,8 @@
"LABEL": "Uzņēmuma Nosaukums",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Iesniegt"
+ "SUBMIT": "Iesniegt",
+ "CANCEL": "Atcelt"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ml/agentBots.json b/app/javascript/dashboard/i18n/locale/ml/agentBots.json
index c68fe231b..0bbe3b7f0 100644
--- a/app/javascript/dashboard/i18n/locale/ml/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ml/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "റദ്ദാക്കുക",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "വെബ്ഹുക്ക് യുആർഎൽ"
+ }
},
"DELETE": {
"BUTTON_TEXT": "ഇല്ലാതാക്കുക",
"TITLE": "Delete bot",
- "SUBMIT": "ഇല്ലാതാക്കുക",
- "CANCEL_BUTTON_TEXT": "റദ്ദാക്കുക",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "ഇല്ലാതാക്കൽ സ്ഥിരീകരിക്കുക",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "അതെ, ഇല്ലാതാക്കുക",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "എഡിറ്റുചെയ്യുക",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "റദ്ദാക്കുക",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "ആക്സസ് ടോക്കൺ",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "വിവരണം",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "വെബ്ഹുക്ക് യുആർഎൽ",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "റദ്ദാക്കുക",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/auditLogs.json b/app/javascript/dashboard/i18n/locale/ml/auditLogs.json
index 0f86e31da..f9150aa51 100644
--- a/app/javascript/dashboard/i18n/locale/ml/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ml/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/automation.json b/app/javascript/dashboard/i18n/locale/ml/automation.json
index 640044e69..3d34b41ae 100644
--- a/app/javascript/dashboard/i18n/locale/ml/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ml/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "ഒന്നുമില്ല"
+ "NONE_OPTION": "ഒന്നുമില്ല",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "സംഭാഷണം ഒച്ചയിലാതാക്കുക",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "ഇമെയിൽ",
+ "INBOX": "ഇൻബോക്സ്",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "ഫോൺ നമ്പർ",
+ "STATUS": "സ്റ്റാറ്റസ്",
+ "BROWSER_LANGUAGE": "ബ്രൗസറിന്റെ ഭാഷ",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "രാജ്യം",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/components.json b/app/javascript/dashboard/i18n/locale/ml/components.json
index f810c1e56..c2d1dc756 100644
--- a/app/javascript/dashboard/i18n/locale/ml/components.json
+++ b/app/javascript/dashboard/i18n/locale/ml/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/contact.json b/app/javascript/dashboard/i18n/locale/ml/contact.json
index c44d1d7b7..0fcc576f1 100644
--- a/app/javascript/dashboard/i18n/locale/ml/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ml/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "കോൺടാക്റ്റുകൾ",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "സന്ദേശം",
"SEND_MESSAGE": "സന്ദേശം അയയ്ക്കുക",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "കോൺടാക്റ്റ് ഇല്ലാതാക്കുക",
"DELETE_DIALOG": {
"TITLE": "ഇല്ലാതാക്കൽ സ്ഥിരീകരിക്കുക",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "അതെ, ഇല്ലാതാക്കുക",
"API": {
"SUCCESS_MESSAGE": "കോൺടാക്റ്റ് വിജയകരമായി ഇല്ലാതാക്കിയിരിക്കുന്നു",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "കോൺടാക്റ്റുകളൊന്നും നിങ്ങളുടെ തിരയലുമായി പൊരുത്തപ്പെടുന്നില്ല",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ml/conversation.json b/app/javascript/dashboard/i18n/locale/ml/conversation.json
index 7a575e6f5..0ea878528 100644
--- a/app/javascript/dashboard/i18n/locale/ml/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ml/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "സംഭാഷണങ്ങൾ ലോഡു ചെയ്യുന്നു",
"CANNOT_REPLY": "നിങ്ങൾക്ക് മറുപടി നൽകാൻ കഴിയില്ല",
"24_HOURS_WINDOW": "24 മണിക്കൂർ സന്ദേശ വിൻഡോ നിയന്ത്രണം",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 മണിക്കൂർ സന്ദേശ വിൻഡോ നിയന്ത്രണം",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "നിങ്ങൾ ഇതിന് മറുപടി നൽകുന്നു:",
"REMOVE_SELECTION": "തിരഞ്ഞെടുക്കൽ നീക്കംചെയ്യുക",
"DOWNLOAD": "ഡൗൺലോഡ്",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "പരിഹരിക്കുക",
"REOPEN_ACTION": "വീണ്ടും തുറക്കുക",
"OPEN_ACTION": "സജീവം",
+ "MORE_ACTIONS": "More actions",
"OPEN": "കൂടുതൽ",
"CLOSE": "അടയ്ക്കുക",
"DETAILS": "വിശദാംശങ്ങൾ",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "ഇല്ലാതാക്കുക"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "അയച്ചത്:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "സംഭാഷണ ലേബലുകൾ",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "മുമ്പത്തെ സംഭാഷണങ്ങൾ",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ml/general.json b/app/javascript/dashboard/i18n/locale/ml/general.json
index 158181ca4..6b050ccb0 100644
--- a/app/javascript/dashboard/i18n/locale/ml/general.json
+++ b/app/javascript/dashboard/i18n/locale/ml/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "തിരയുക",
"EMPTY_STATE": "ഒരു ഫലവും കണ്ടെത്താനായില്ല"
- }
+ },
+ "CLOSE": "അടയ്ക്കുക"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/generalSettings.json b/app/javascript/dashboard/i18n/locale/ml/generalSettings.json
index 1d8b7fd75..52cf08c2c 100644
--- a/app/javascript/dashboard/i18n/locale/ml/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ml/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "അക്കൗണ്ട് ക്രമീകരണങ്ങൾ",
"SUBMIT": "ക്രമീകരണങ്ങൾ അപ്ഡേറ്റു ചെയ്യുക",
"BACK": "മടങ്ങിപ്പോവുക",
@@ -8,6 +14,26 @@
"ERROR": "ക്രമീകരണങ്ങൾ അപ്ഡേറ്റു ചെയ്യാനായില്ല, വീണ്ടും ശ്രമിക്കുക!",
"SUCCESS": "അക്കൗണ്ട് ക്രമീകരണങ്ങൾ വിജയകരമായി അപ്ഡേറ്റു ചെയ്തു"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "ഇല്ലാതാക്കുക",
+ "DISMISS": "റദ്ദാക്കുക",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "ദയവായി ഫോമിലെ പിശകുകൾ പരിഹരിക്കുക",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "അക്കൗണ്ടിന്റെ പേര്",
"PLACEHOLDER": "നിങ്ങളുടെ അക്കൗണ്ടിന്റെ പേര്",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "നിങ്ങളുടെ കമ്പനിയുടെ പിന്തുണാ ഇമെയിൽ",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "പ്രവർത്തനമൊന്നുമില്ലെങ്കിൽ ടിക്കറ്റിന് ശേഷമുള്ള ദിവസങ്ങളുടെ എണ്ണം യാന്ത്രികമായി പരിഹരിക്കേണ്ടതാണ്",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "അപ്ഡേറ്റ്",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "നിങ്ങളുടെ അക്കൗണ്ടിനായി ഇമെയിലുകളുമായുള്ള സംഭാഷണ തുടർച്ച പ്രവർത്തനക്ഷമമാക്കി.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/ml/helpCenter.json b/app/javascript/dashboard/i18n/locale/ml/helpCenter.json
index 123b72b6b..69bfd1652 100644
--- a/app/javascript/dashboard/i18n/locale/ml/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ml/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json
index d4a08c61e..98d0fc0ca 100644
--- a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "ഇൻബോക്സ് നാമം",
"ADD_NAME": "നിങ്ങളുടെ ഇൻബോക്സിനായി ഒരു പേര് ചേർക്കുക",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "ഒരു മൂല്യം തിരഞ്ഞെടുക്കുക"
+ "PICK_A_VALUE": "ഒരു മൂല്യം തിരഞ്ഞെടുക്കുക",
+ "CREATE_INBOX": "ഇൻബോക്സ് സൃഷ്ടിക്കുക"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "നിങ്ങളുടെ ട്വിറ്റർ പ്രൊഫൈൽ ഒരു ചാനലായി ചേർക്കുന്നതിന്, 'ട്വിറ്ററിനൊപ്പം പ്രവേശിക്കുക' ക്ലിക്കുചെയ്ത് നിങ്ങളുടെ ട്വിറ്റർ പ്രൊഫൈൽ പ്രാമാണീകരിക്കേണ്ടതുണ്ട് ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "ക്രമീകരണങ്ങൾ",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "ഓട്ടോ അസൈൻമെന്റ് പ്രവർത്തനക്ഷമമാക്കുക",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "ഇമെയിൽ വഴി സംഭാഷണ തുടർച്ച പ്രവർത്തനക്ഷമമാക്കുക",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "ബന്ധപ്പെടാനുള്ള ഇമെയിൽ വിലാസം ലഭ്യമാണെങ്കിൽ സംഭാഷണങ്ങൾ ഇമെയിൽ വഴി തുടരും.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "സന്ദേശം",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "അടങ്ങിയിരിക്കുന്നു",
+ "DOES_NOT_CONTAINS": "ഉൾപ്പെട്ടിട്ടില്ല"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "ഇമെയിൽ",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/integrations.json b/app/javascript/dashboard/i18n/locale/ml/integrations.json
index 8f332fb9c..f048ff9c6 100644
--- a/app/javascript/dashboard/i18n/locale/ml/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ml/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "റദ്ദാക്കുക"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "സന്ദേശം അയയ്ക്കുക...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "നിങ്ങളുടെ സന്ദേശം ടൈപ്പുചെയ്യുക...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "അപ്ഡേറ്റ്",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "പേര്",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "വിവരണം",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/ml/macros.json b/app/javascript/dashboard/i18n/locale/ml/macros.json
index 8ba0ac78b..bf31c8ec3 100644
--- a/app/javascript/dashboard/i18n/locale/ml/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ml/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "സംഭാഷണം ഒച്ചയിലാതാക്കുക",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/report.json b/app/javascript/dashboard/i18n/locale/ml/report.json
index 738dae73a..e6d2339ab 100644
--- a/app/javascript/dashboard/i18n/locale/ml/report.json
+++ b/app/javascript/dashboard/i18n/locale/ml/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "ലേബലുകൾ അവലോകനം",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "ചാർട്ട് ഡാറ്റ ലോഡു ചെയ്യുകയാണ്...",
"NO_ENOUGH_DATA": "റിപ്പോർട്ട് സൃഷ്ടിക്കുന്നതിന് ആവശ്യമായ ഡാറ്റ ഞങ്ങൾക്ക് ലഭിച്ചിട്ടില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക.",
"DOWNLOAD_LABEL_REPORTS": "ലേബൽ റിപ്പോർട്ടുകൾ ഡൗൺലോഡ് ചെയ്യുക",
@@ -559,6 +560,7 @@
"INBOX": "ഇൻബോക്സ്",
"AGENT": "ഏജന്റ്",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/ml/search.json b/app/javascript/dashboard/i18n/locale/ml/search.json
index 664cd46f3..5c6c2804f 100644
--- a/app/javascript/dashboard/i18n/locale/ml/search.json
+++ b/app/javascript/dashboard/i18n/locale/ml/search.json
@@ -4,12 +4,14 @@
"ALL": "എല്ലാം",
"CONTACTS": "കോൺടാക്റ്റുകൾ",
"CONVERSATIONS": "സംഭാഷണങ്ങൾ",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "കോൺടാക്റ്റുകൾ",
"CONVERSATIONS": "സംഭാഷണങ്ങൾ",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/ml/settings.json b/app/javascript/dashboard/i18n/locale/ml/settings.json
index dd0f40fc3..5313410ce 100644
--- a/app/javascript/dashboard/i18n/locale/ml/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ml/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "ആക്സസ് ടോക്കൺ",
"NOTE": "നിങ്ങൾ ഒരു എപിഐ അടിസ്ഥാനമാക്കിയുള്ള സംയോജനം നിർമ്മിക്കുകയാണെങ്കിൽ ഈ ടോക്കൺ ഉപയോഗിക്കാൻ കഴിയും",
- "COPY": "പകർത്തുക"
+ "COPY": "പകർത്തുക",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "ഓഫ്ലൈൻ"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "നിങ്ങളുടെ ഇമെയിൽ വിലാസം",
@@ -280,6 +286,7 @@
"REPORTS": "റിപ്പോർട്ടുകൾ",
"SETTINGS": "ക്രമീകരണങ്ങൾ",
"CONTACTS": "കോൺടാക്റ്റുകൾ",
+ "ACTIVE": "സജീവമാണ്",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "കമ്പനിയുടെ പേര്",
"PLACEHOLDER": "പുണ്ണ്യാളൻ അഗർബത്തീസ്"
},
- "SUBMIT": "സമർപ്പിക്കുക"
+ "SUBMIT": "സമർപ്പിക്കുക",
+ "CANCEL": "റദ്ദാക്കുക"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ms/agentBots.json b/app/javascript/dashboard/i18n/locale/ms/agentBots.json
index 89ca182b0..5e0cd93d9 100644
--- a/app/javascript/dashboard/i18n/locale/ms/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ms/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Batalkan",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Padamkan",
"TITLE": "Delete bot",
- "SUBMIT": "Padamkan",
- "CANCEL_BUTTON_TEXT": "Batalkan",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Pasti Padamkan",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Batalkan",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Batalkan",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/auditLogs.json b/app/javascript/dashboard/i18n/locale/ms/auditLogs.json
index becbcc6dc..23d80ed57 100644
--- a/app/javascript/dashboard/i18n/locale/ms/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ms/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/automation.json b/app/javascript/dashboard/i18n/locale/ms/automation.json
index 6cb095cbe..b94398364 100644
--- a/app/javascript/dashboard/i18n/locale/ms/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ms/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Tiada"
+ "NONE_OPTION": "Tiada",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Bahasa Pelayar",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/components.json b/app/javascript/dashboard/i18n/locale/ms/components.json
index 6aa91cf7f..c0ad88921 100644
--- a/app/javascript/dashboard/i18n/locale/ms/components.json
+++ b/app/javascript/dashboard/i18n/locale/ms/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/contact.json b/app/javascript/dashboard/i18n/locale/ms/contact.json
index d4e7f25dd..6373a8987 100644
--- a/app/javascript/dashboard/i18n/locale/ms/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ms/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Pasti Padamkan",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Baik, Padamkan",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ms/conversation.json b/app/javascript/dashboard/i18n/locale/ms/conversation.json
index a95e96af8..f85962a18 100644
--- a/app/javascript/dashboard/i18n/locale/ms/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ms/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Padamkan"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ms/general.json b/app/javascript/dashboard/i18n/locale/ms/general.json
index 99f9b07d9..1ebfcd2bc 100644
--- a/app/javascript/dashboard/i18n/locale/ms/general.json
+++ b/app/javascript/dashboard/i18n/locale/ms/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "Tiada dijumpa"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/generalSettings.json b/app/javascript/dashboard/i18n/locale/ms/generalSettings.json
index c8500f165..c9f4fb9cd 100644
--- a/app/javascript/dashboard/i18n/locale/ms/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ms/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Padamkan",
+ "DISMISS": "Batalkan",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/ms/helpCenter.json b/app/javascript/dashboard/i18n/locale/ms/helpCenter.json
index 08a94bdc5..9f2371162 100644
--- a/app/javascript/dashboard/i18n/locale/ms/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ms/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json
index 403918e79..90db11bee 100644
--- a/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "mengandungi",
+ "DOES_NOT_CONTAINS": "tidak mengandungi"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/integrations.json b/app/javascript/dashboard/i18n/locale/ms/integrations.json
index 9f13d01dd..316e84f1d 100644
--- a/app/javascript/dashboard/i18n/locale/ms/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ms/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Batalkan"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Nama",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/ms/macros.json b/app/javascript/dashboard/i18n/locale/ms/macros.json
index d450e1944..4a17a2cb5 100644
--- a/app/javascript/dashboard/i18n/locale/ms/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ms/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/report.json b/app/javascript/dashboard/i18n/locale/ms/report.json
index 095587745..0b463ac6c 100644
--- a/app/javascript/dashboard/i18n/locale/ms/report.json
+++ b/app/javascript/dashboard/i18n/locale/ms/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Ejen",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/ms/search.json b/app/javascript/dashboard/i18n/locale/ms/search.json
index 3cb566813..e8510ab97 100644
--- a/app/javascript/dashboard/i18n/locale/ms/search.json
+++ b/app/javascript/dashboard/i18n/locale/ms/search.json
@@ -4,12 +4,14 @@
"ALL": "All",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/ms/settings.json b/app/javascript/dashboard/i18n/locale/ms/settings.json
index 0f39116d6..b987a389f 100644
--- a/app/javascript/dashboard/i18n/locale/ms/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ms/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Batalkan"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ne/agentBots.json b/app/javascript/dashboard/i18n/locale/ne/agentBots.json
index 41b8fcb1b..d3a0bb991 100644
--- a/app/javascript/dashboard/i18n/locale/ne/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ne/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Delete",
"TITLE": "Delete bot",
- "SUBMIT": "Delete",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancel",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/auditLogs.json b/app/javascript/dashboard/i18n/locale/ne/auditLogs.json
index 35c054fa2..df236f5b5 100644
--- a/app/javascript/dashboard/i18n/locale/ne/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ne/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/automation.json b/app/javascript/dashboard/i18n/locale/ne/automation.json
index ad83dad66..c56f900f4 100644
--- a/app/javascript/dashboard/i18n/locale/ne/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ne/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/components.json b/app/javascript/dashboard/i18n/locale/ne/components.json
index c7230b1fc..e44c6e039 100644
--- a/app/javascript/dashboard/i18n/locale/ne/components.json
+++ b/app/javascript/dashboard/i18n/locale/ne/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/contact.json b/app/javascript/dashboard/i18n/locale/ne/contact.json
index 9ec931c87..ecf2e17ac 100644
--- a/app/javascript/dashboard/i18n/locale/ne/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ne/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Confirm Deletion",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ne/conversation.json b/app/javascript/dashboard/i18n/locale/ne/conversation.json
index c9b6bd3e0..94f9f6e6a 100644
--- a/app/javascript/dashboard/i18n/locale/ne/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ne/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "डाउनलोड",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "बन्दा गार्नुहोस्",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ne/general.json b/app/javascript/dashboard/i18n/locale/ne/general.json
index 78e97db90..0c32a56e1 100644
--- a/app/javascript/dashboard/i18n/locale/ne/general.json
+++ b/app/javascript/dashboard/i18n/locale/ne/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "बन्दा गार्नुहोस्"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/generalSettings.json b/app/javascript/dashboard/i18n/locale/ne/generalSettings.json
index 9ad4e4b57..c0c4d247d 100644
--- a/app/javascript/dashboard/i18n/locale/ne/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ne/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "Cancel",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/ne/helpCenter.json b/app/javascript/dashboard/i18n/locale/ne/helpCenter.json
index c8f915e49..5a8d53825 100644
--- a/app/javascript/dashboard/i18n/locale/ne/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ne/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json
index 9e8585bc8..11c2f88ce 100644
--- a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/integrations.json b/app/javascript/dashboard/i18n/locale/ne/integrations.json
index b98b276aa..5779e973f 100644
--- a/app/javascript/dashboard/i18n/locale/ne/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ne/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Cancel"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/ne/macros.json b/app/javascript/dashboard/i18n/locale/ne/macros.json
index 95e02fe94..d22744190 100644
--- a/app/javascript/dashboard/i18n/locale/ne/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ne/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/report.json b/app/javascript/dashboard/i18n/locale/ne/report.json
index e176d9147..18f1ed14b 100644
--- a/app/javascript/dashboard/i18n/locale/ne/report.json
+++ b/app/javascript/dashboard/i18n/locale/ne/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/ne/search.json b/app/javascript/dashboard/i18n/locale/ne/search.json
index 3cb566813..e8510ab97 100644
--- a/app/javascript/dashboard/i18n/locale/ne/search.json
+++ b/app/javascript/dashboard/i18n/locale/ne/search.json
@@ -4,12 +4,14 @@
"ALL": "All",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/ne/settings.json b/app/javascript/dashboard/i18n/locale/ne/settings.json
index 50ba5d9f1..cba2ddb5a 100644
--- a/app/javascript/dashboard/i18n/locale/ne/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ne/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "बुझाउनुहोस्"
+ "SUBMIT": "बुझाउनुहोस्",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/nl/agentBots.json b/app/javascript/dashboard/i18n/locale/nl/agentBots.json
index 848692344..e0eb22829 100644
--- a/app/javascript/dashboard/i18n/locale/nl/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/nl/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot Naam",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot naam is vereist."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "Wat doet deze bot?"
- },
- "BOT_CONFIG": {
- "ERROR": "Vul uw CSML bot configuratie hierboven in.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Valideren en opslaan"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "Systeem",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Selecteer een agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configureer nieuwe bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Annuleren",
"API": {
"SUCCESS_MESSAGE": "Bot succesvol toegevoegd.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Verwijderen",
"TITLE": "Delete bot",
- "SUBMIT": "Verwijderen",
- "CANCEL_BUTTON_TEXT": "Annuleren",
- "DESCRIPTION": "Weet u zeker dat u deze bot wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.",
+ "CONFIRM": {
+ "TITLE": "Verwijderen bevestigen",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Ja, verwijderen",
+ "NO": "Nee, Behouden"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot succesvol verwijderd.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Bewerken",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Annuleren",
"API": {
"SUCCESS_MESSAGE": "Bot succesvol bijgewerkt.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Toegangs-token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot Naam",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot naam is vereist"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschrijving",
+ "PLACEHOLDER": "Wat doet deze bot?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot naam is vereist",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Annuleren",
+ "CREATE": "Bot Maken",
+ "UPDATE": "Bot updaten"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/auditLogs.json b/app/javascript/dashboard/i18n/locale/nl/auditLogs.json
index 34000522f..80cdacee5 100644
--- a/app/javascript/dashboard/i18n/locale/nl/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/nl/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/automation.json b/app/javascript/dashboard/i18n/locale/nl/automation.json
index 5e35ad18d..09d19a055 100644
--- a/app/javascript/dashboard/i18n/locale/nl/automation.json
+++ b/app/javascript/dashboard/i18n/locale/nl/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Geen"
+ "NONE_OPTION": "Geen",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Gesprek aangemaakt",
+ "CONVERSATION_UPDATED": "Gesprek bijgewerkt",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Gesprek dempen",
+ "SNOOZE_CONVERSATION": "Demp gesprek",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "E-mailadres",
+ "INBOX": "Postvak In",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Telefoonnummer",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Web browser Taal",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Land",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Prioriteit"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/components.json b/app/javascript/dashboard/i18n/locale/nl/components.json
index 15f2825a7..5f52637d7 100644
--- a/app/javascript/dashboard/i18n/locale/nl/components.json
+++ b/app/javascript/dashboard/i18n/locale/nl/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/contact.json b/app/javascript/dashboard/i18n/locale/nl/contact.json
index 0904cb31a..1939b63b5 100644
--- a/app/javascript/dashboard/i18n/locale/nl/contact.json
+++ b/app/javascript/dashboard/i18n/locale/nl/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacten",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Bericht",
"SEND_MESSAGE": "Verstuur bericht",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Contactpersoon verwijderen",
"DELETE_DIALOG": {
"TITLE": "Verwijderen bevestigen",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Ja, verwijderen",
"API": {
"SUCCESS_MESSAGE": "Contactpersoon werd succesvol verwijderd",
@@ -544,6 +549,9 @@
"WROTE": "schreef",
"YOU": "Jij",
"SAVE": "Save note",
+ "EXPAND": "Uitklappen",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Er zijn geen contacten die overeenkomen met je zoekopdracht 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/nl/conversation.json b/app/javascript/dashboard/i18n/locale/nl/conversation.json
index 718641312..1c64164f1 100644
--- a/app/javascript/dashboard/i18n/locale/nl/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/nl/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Conversaties laden",
"CANNOT_REPLY": "Je kunt niet reageren omdat",
"24_HOURS_WINDOW": "Beperking van 24-uur berichtenvenster",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Dit gesprek is niet aan je toegewezen. Wil je dit gesprek aan jezelf toewijzen?",
"ASSIGN_TO_ME": "Aan mij toewijzen",
"TWILIO_WHATSAPP_CAN_REPLY": "Je kunt dit gesprek alleen beantwoorden met een sjabloon bericht vanwege",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Beperking van 24-uur berichtenvenster",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Je antwoordt op:",
"REMOVE_SELECTION": "Verwijder selectie",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Oplossen",
"REOPEN_ACTION": "Heropenen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Meer",
"CLOSE": "Sluiten",
"DETAILS": "Details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Verwijderen"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Markeren als in afwachting van",
"RESOLVED": "Markeer als opgelost",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Label toewijzen",
"AGENTS_LOADING": "Agents worden geladen...",
"ASSIGN_TEAM": "Team toewijzen",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Gesprek id {conversationId} toegewezen aan \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Verzonden door:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Labels voor gesprekken",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Vorige gesprekken",
"MACROS": "Macro's",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/nl/general.json b/app/javascript/dashboard/i18n/locale/nl/general.json
index 38184deee..fcd3683bf 100644
--- a/app/javascript/dashboard/i18n/locale/nl/general.json
+++ b/app/javascript/dashboard/i18n/locale/nl/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Zoeken",
"EMPTY_STATE": "Geen resultaten gevonden"
- }
+ },
+ "CLOSE": "Sluiten"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/generalSettings.json b/app/javascript/dashboard/i18n/locale/nl/generalSettings.json
index a13c1abcf..f371d56d6 100644
--- a/app/javascript/dashboard/i18n/locale/nl/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/nl/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Accountinstellingen",
"SUBMIT": "Instellingen bijwerken",
"BACK": "Terug",
@@ -8,6 +14,26 @@
"ERROR": "Instellingen konden niet worden bijgewerkt, probeer het opnieuw!",
"SUCCESS": "Accountinstellingen succesvol bijgewerkt"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Verwijderen",
+ "DISMISS": "Annuleren",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Corrigeer formulierfouten",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Voorkeuren",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "accountnaam",
"PLACEHOLDER": "Uw accountnaam",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "E-mailadres support van uw bedrijf",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Vernieuwen",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Openstaande facturering"
},
diff --git a/app/javascript/dashboard/i18n/locale/nl/helpCenter.json b/app/javascript/dashboard/i18n/locale/nl/helpCenter.json
index b3f63945c..720121818 100644
--- a/app/javascript/dashboard/i18n/locale/nl/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/nl/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json
index b83a3bfd0..42a13dc94 100644
--- a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Maak inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Om uw Twitterprofiel als kanaal toe te voegen moet u uw Twitterprofiel verifiëren door te klikken op 'Meld je aan met Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Instellingen",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Automatische toewijzing inschakelen",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Bericht",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "bevat",
+ "DOES_NOT_CONTAINS": "bevat niet"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "E-mailadres",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API-kanaal"
+ "API": "API-kanaal",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/integrations.json b/app/javascript/dashboard/i18n/locale/nl/integrations.json
index 9bb7e51d2..94cc0034d 100644
--- a/app/javascript/dashboard/i18n/locale/nl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/nl/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Bericht bijgewerkt",
"WEBWIDGET_TRIGGERED": "Live chat widget geopend door de gebruiker",
"CONTACT_CREATED": "Contact aangemaakt",
- "CONTACT_UPDATED": "Contact aangemaakt"
+ "CONTACT_UPDATED": "Contact aangemaakt",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Ja, verwijderen",
"CANCEL": "Annuleren"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Verstuur bericht...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Jij",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Jij",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Typ uw bericht...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Vernieuwen",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Naam",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Beschrijving",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/nl/macros.json b/app/javascript/dashboard/i18n/locale/nl/macros.json
index aa335dea9..7f5f59eb9 100644
--- a/app/javascript/dashboard/i18n/locale/nl/macros.json
+++ b/app/javascript/dashboard/i18n/locale/nl/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Gesprek dempen",
+ "SNOOZE_CONVERSATION": "Demp gesprek",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/report.json b/app/javascript/dashboard/i18n/locale/nl/report.json
index ddb7807a9..d2c3e8504 100644
--- a/app/javascript/dashboard/i18n/locale/nl/report.json
+++ b/app/javascript/dashboard/i18n/locale/nl/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Kaartgegevens laden...",
"NO_ENOUGH_DATA": "We hebben niet genoeg datapunten ontvangen om een rapport te genereren, probeer het later opnieuw.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Postvak In",
"AGENT": "Medewerker",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/nl/search.json b/app/javascript/dashboard/i18n/locale/nl/search.json
index 150daf18c..52cc72e53 100644
--- a/app/javascript/dashboard/i18n/locale/nl/search.json
+++ b/app/javascript/dashboard/i18n/locale/nl/search.json
@@ -4,12 +4,14 @@
"ALL": "Allemaal",
"CONTACTS": "Contacten",
"CONVERSATIONS": "Gesprekken",
- "MESSAGES": "Berichten"
+ "MESSAGES": "Berichten",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacten",
"CONVERSATIONS": "Gesprekken",
- "MESSAGES": "Berichten"
+ "MESSAGES": "Berichten",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/nl/settings.json b/app/javascript/dashboard/i18n/locale/nl/settings.json
index 847ed7aa4..419c7ef64 100644
--- a/app/javascript/dashboard/i18n/locale/nl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/nl/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Toegangs-token",
"NOTE": "Dit token kan worden gebruikt als u een API gebaseerde integratie bouwt",
- "COPY": "Kopiëren"
+ "COPY": "Kopiëren",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Uw e-mailadres",
@@ -280,6 +286,7 @@
"REPORTS": "Rapporten",
"SETTINGS": "Instellingen",
"CONTACTS": "Contacten",
+ "ACTIVE": "Actief",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Bedrijfsnaam",
"PLACEHOLDER": "Wayne Ondernemingen"
},
- "SUBMIT": "Bevestigen"
+ "SUBMIT": "Bevestigen",
+ "CANCEL": "Annuleren"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/no/agentBots.json b/app/javascript/dashboard/i18n/locale/no/agentBots.json
index e7584a4c4..188098606 100644
--- a/app/javascript/dashboard/i18n/locale/no/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/no/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Avbryt",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Slett",
"TITLE": "Delete bot",
- "SUBMIT": "Slett",
- "CANCEL_BUTTON_TEXT": "Avbryt",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Bekreft sletting",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Ja, slett",
+ "NO": "Nei, behold"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Rediger",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Avbryt",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Tilgangstoken",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Avbryt",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/auditLogs.json b/app/javascript/dashboard/i18n/locale/no/auditLogs.json
index 86835d088..f47736a57 100644
--- a/app/javascript/dashboard/i18n/locale/no/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/no/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/automation.json b/app/javascript/dashboard/i18n/locale/no/automation.json
index e6f6cf2a5..44edd7b44 100644
--- a/app/javascript/dashboard/i18n/locale/no/automation.json
+++ b/app/javascript/dashboard/i18n/locale/no/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Ingen"
+ "NONE_OPTION": "Ingen",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Demp samtale",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "E-post",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Telefonnummer",
+ "STATUS": "Satus",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Agent",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/components.json b/app/javascript/dashboard/i18n/locale/no/components.json
index 2ec8d7dae..2e9776e1f 100644
--- a/app/javascript/dashboard/i18n/locale/no/components.json
+++ b/app/javascript/dashboard/i18n/locale/no/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/contact.json b/app/javascript/dashboard/i18n/locale/no/contact.json
index 0bb082e98..fccb77206 100644
--- a/app/javascript/dashboard/i18n/locale/no/contact.json
+++ b/app/javascript/dashboard/i18n/locale/no/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontakter",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Melding",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Bekreft sletting",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Ja, slett",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "Du",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Ingen kontakter samsvarer med søket ditt 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/no/conversation.json b/app/javascript/dashboard/i18n/locale/no/conversation.json
index 6357ecb53..c83a5833b 100644
--- a/app/javascript/dashboard/i18n/locale/no/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/no/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Laster samtaler",
"CANNOT_REPLY": "Du kan ikke svare på grunn av",
"24_HOURS_WINDOW": "24-timers meldingsrestriksjon",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24-timers meldingsrestriksjon",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Du svarer til:",
"REMOVE_SELECTION": "Fjern utvalget",
"DOWNLOAD": "Last ned",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Løs",
"REOPEN_ACTION": "Gjenåpne",
"OPEN_ACTION": "Åpne",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Mer",
"CLOSE": "Lukk",
"DETAILS": "detaljer",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Slett"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sendt av:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Samtaleetiketter",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Tidligere samtaler",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/no/general.json b/app/javascript/dashboard/i18n/locale/no/general.json
index b7140855a..fb289a8d6 100644
--- a/app/javascript/dashboard/i18n/locale/no/general.json
+++ b/app/javascript/dashboard/i18n/locale/no/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Søk",
"EMPTY_STATE": "Ingen resultater funnet"
- }
+ },
+ "CLOSE": "Lukk"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/generalSettings.json b/app/javascript/dashboard/i18n/locale/no/generalSettings.json
index 140385819..d68075947 100644
--- a/app/javascript/dashboard/i18n/locale/no/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/no/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Kontoinnstillinger",
"SUBMIT": "Oppdater innstillinger",
"BACK": "Tilbake",
@@ -8,6 +14,26 @@
"ERROR": "Kunne ikke oppdatere innstillinger, prøv igjen!",
"SUCCESS": "Innstillinger ble oppdatert"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Slett",
+ "DISMISS": "Avbryt",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Vennligst fiks skjemafeil",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Kontonavn",
"PLACEHOLDER": "Ditt kontonavn",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Ditt firmas support e-post",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Antall dager en sak skal løses automatisk hvis det ikke har vært aktivitet",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Oppdater",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Samtalekontinuitet med e-post er aktivert for din konto.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "En oppdatering av {latestChatwootVersion} for Chatwoot er tilgjengelig. Oppdater din instans.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/no/helpCenter.json b/app/javascript/dashboard/i18n/locale/no/helpCenter.json
index 65d7dc5d3..bcb18e065 100644
--- a/app/javascript/dashboard/i18n/locale/no/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/no/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json
index 4d51e2fe6..0cd2534aa 100644
--- a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Navn på innboks",
"ADD_NAME": "Legge til et navn på innboksen din",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Velg en verdi"
+ "PICK_A_VALUE": "Velg en verdi",
+ "CREATE_INBOX": "Opprett innboks"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "For å legge til din Twitter-profil som kanal, må du autorisere din Twitter-profil ved å klikke på 'Logg inn med Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Innstillinger",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Aktiver autotilordning",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Melding",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "E-post",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Kanal"
+ "API": "API Kanal",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/integrations.json b/app/javascript/dashboard/i18n/locale/no/integrations.json
index c8143b561..6d22be801 100644
--- a/app/javascript/dashboard/i18n/locale/no/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/no/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Ja, slett",
"CANCEL": "Avbryt"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Du",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Du",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Skriv inn meldingen...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Oppdater",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Funksjoner",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Navn",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Funksjoner",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/no/macros.json b/app/javascript/dashboard/i18n/locale/no/macros.json
index 81759c73e..06f4adca9 100644
--- a/app/javascript/dashboard/i18n/locale/no/macros.json
+++ b/app/javascript/dashboard/i18n/locale/no/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Demp samtale",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/report.json b/app/javascript/dashboard/i18n/locale/no/report.json
index 4ebf3c85e..106f434bc 100644
--- a/app/javascript/dashboard/i18n/locale/no/report.json
+++ b/app/javascript/dashboard/i18n/locale/no/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Laster inn diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke mottatt nok data for å generere rapporten, vennligst prøv igjen senere.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Innboks",
"AGENT": "Agent",
"TEAM": "Gruppe",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/no/search.json b/app/javascript/dashboard/i18n/locale/no/search.json
index 0f632dda4..3078c3af6 100644
--- a/app/javascript/dashboard/i18n/locale/no/search.json
+++ b/app/javascript/dashboard/i18n/locale/no/search.json
@@ -4,12 +4,14 @@
"ALL": "Alle",
"CONTACTS": "Kontakter",
"CONVERSATIONS": "Samtaler",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakter",
"CONVERSATIONS": "Samtaler",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/no/settings.json b/app/javascript/dashboard/i18n/locale/no/settings.json
index 0e0a6614b..0c823d7c1 100644
--- a/app/javascript/dashboard/i18n/locale/no/settings.json
+++ b/app/javascript/dashboard/i18n/locale/no/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Tilgangstoken",
"NOTE": "Dette tokenet kan brukes hvis du lager en API-basert integrasjon",
- "COPY": "Kopier"
+ "COPY": "Kopier",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Frakoblet"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Din e-postadresse",
@@ -280,6 +286,7 @@
"REPORTS": "Rapporter",
"SETTINGS": "Innstillinger",
"CONTACTS": "Kontakter",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Firmaets navn",
"PLACEHOLDER": "Ola's bedrift"
},
- "SUBMIT": "Send"
+ "SUBMIT": "Send",
+ "CANCEL": "Avbryt"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/pl/agentBots.json b/app/javascript/dashboard/i18n/locale/pl/agentBots.json
index fe0b3414d..d861bdead 100644
--- a/app/javascript/dashboard/i18n/locale/pl/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/pl/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Boty",
"LOADING_EDITOR": "Ładowanie edytora...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Nazwa bota",
- "PLACEHOLDER": "Nazwij swojego bota.",
- "ERROR": "Nazwa bota jest wymagana."
- },
- "DESCRIPTION": {
- "LABEL": "Opis bota",
- "PLACEHOLDER": "Co robi ten bot?"
- },
- "BOT_CONFIG": {
- "ERROR": "Proszę wprowadzić konfigurację bota CSML powyżej.",
- "API_ERROR": "Twoja konfiguracja CSML jest nieprawidłowa. Proszę ją poprawić i spróbować ponownie."
- },
- "SUBMIT": "Zweryfikuj i zapisz"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Wybierz bota agenta",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Wybierz bota"
},
"ADD": {
- "TITLE": "Konfiguruj nowego bota",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Anuluj",
"API": {
"SUCCESS_MESSAGE": "Bot dodany pomyślnie.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Nie znaleziono botów. Możesz stworzyć bota, klikając przycisk 'Konfiguruj nowego bota' ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Pobieranie botów...",
- "TYPE": "Typ bota"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Adres URL webhooka"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Usuń",
"TITLE": "Usuń bota",
- "SUBMIT": "Usuń",
- "CANCEL_BUTTON_TEXT": "Anuluj",
- "DESCRIPTION": "Czy na pewno chcesz usunąć tego bota? Ta akcja jest nieodwracalna.",
+ "CONFIRM": {
+ "TITLE": "Potwierdź usunięcie",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Tak, usuń",
+ "NO": "Nie, anuluj"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot usunięty pomyślnie.",
"ERROR_MESSAGE": "Nie udało się usunąć bota. Proszę spróbować ponownie."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edytuj",
- "LOADING": "Pobieranie botów...",
"TITLE": "Edytuj bota",
- "CANCEL_BUTTON_TEXT": "Anuluj",
"API": {
"SUCCESS_MESSAGE": "Bot zaktualizowany pomyślnie.",
"ERROR_MESSAGE": "Nie udało się zaktualizować bota. Proszę spróbować ponownie."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Token dostępu",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Nazwa bota",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Nazwa bota jest wymagana"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Opis",
+ "PLACEHOLDER": "Co robi ten bot?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Adres URL webhooka",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Nazwa bota jest wymagana",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Anuluj",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Bot webhook",
- "CSML": "Bot CSML"
+ "WEBHOOK": "Bot webhook"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/auditLogs.json b/app/javascript/dashboard/i18n/locale/pl/auditLogs.json
index 7cfa77af4..48462730b 100644
--- a/app/javascript/dashboard/i18n/locale/pl/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/pl/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/automation.json b/app/javascript/dashboard/i18n/locale/pl/automation.json
index ff0c0ffd8..efe06f71d 100644
--- a/app/javascript/dashboard/i18n/locale/pl/automation.json
+++ b/app/javascript/dashboard/i18n/locale/pl/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Brak"
+ "NONE_OPTION": "Brak",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Rozpoczęcie rozmowy",
+ "CONVERSATION_UPDATED": "Aktualizacja rozmowy",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Wycisz kontakt",
+ "SNOOZE_CONVERSATION": "Zatrzymaj rozmowę",
+ "RESOLVE_CONVERSATION": "Zamknij rozmowę",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Zmień priorytet",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "E-mail",
+ "INBOX": "Skrzynka odbiorcza",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Numer telefonu",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Język przeglądarki",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Kraj",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Zespół",
+ "PRIORITY": "Priorytet"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/components.json b/app/javascript/dashboard/i18n/locale/pl/components.json
index 2cf9539b1..dc56b980b 100644
--- a/app/javascript/dashboard/i18n/locale/pl/components.json
+++ b/app/javascript/dashboard/i18n/locale/pl/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Dowiedz się więcej",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/contact.json b/app/javascript/dashboard/i18n/locale/pl/contact.json
index b6425127e..87f901eda 100644
--- a/app/javascript/dashboard/i18n/locale/pl/contact.json
+++ b/app/javascript/dashboard/i18n/locale/pl/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontakty",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Wiadomość",
"SEND_MESSAGE": "Wyślij wiadomość",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Usuń kontakt",
"DELETE_DIALOG": {
"TITLE": "Potwierdź usunięcie",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Tak, usuń",
"API": {
"SUCCESS_MESSAGE": "Kontakt został pomyślnie usunięty",
@@ -544,6 +549,9 @@
"WROTE": "napisał/a",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Brak kontaktów pasujących do wyszukiwania 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/pl/conversation.json b/app/javascript/dashboard/i18n/locale/pl/conversation.json
index 8e1b6eedd..4c3086088 100644
--- a/app/javascript/dashboard/i18n/locale/pl/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/pl/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Ładowanie konwersacji",
"CANNOT_REPLY": "Nie możesz odpowiedzieć z powodu",
"24_HOURS_WINDOW": "Ograniczenie 24-godzinnego okna wiadomości",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Ta konwersacja nie jest Ci przypisana. Czy chcesz przypisać tę konwersację do siebie?",
"ASSIGN_TO_ME": "Przypisz do mnie",
"TWILIO_WHATSAPP_CAN_REPLY": "Możesz odpowiedzieć na tę rozmowę tylko za pomocą szablonu wiadomości, ponieważ",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Ograniczenie 24-godzinnego okna wiadomości",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Osoba, której odpowiadasz to:",
"REMOVE_SELECTION": "Usuń zaznaczenie",
"DOWNLOAD": "Pobierz",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Rozwiąż",
"REOPEN_ACTION": "Otwórz ponownie",
"OPEN_ACTION": "Otwórz",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Więcej",
"CLOSE": "Zamknij",
"DETAILS": "szczegóły",
@@ -115,6 +118,11 @@
"FAILED": "Nie można zmienić priorytetu. Spróbuj ponownie."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Usuń"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Oznacz jako oczekujące",
"RESOLVED": "Oznacz jako rozwiązane",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Przypisz etykietę",
"AGENTS_LOADING": "Ładowanie agentów...",
"ASSIGN_TEAM": "Przypisz zespół",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Konwersacja o identyfikatorze {conversationId} przypisana do \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Etykieta przypisana pomyślnie",
"ASSIGN_LABEL_FAILED": "Nie udało się przypisać etykiety",
"CHANGE_TEAM": "Zmieniono przypisany zespół konwersacji",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Plik przekracza limit rozmiaru załącznika %{MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
"MESSAGE_ERROR": "Nie można wysłać tej wiadomości, spróbuj ponownie później",
"SENT_BY": "Wysłane przez:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Akcje konwersacji",
"CONVERSATION_LABELS": "Etykiety konwersacji",
"CONVERSATION_INFO": "Informacje o konwersacji",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Atrybuty kontaktu",
"PREVIOUS_CONVERSATION": "Poprzednie konwersacje",
"MACROS": "Makra",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/pl/general.json b/app/javascript/dashboard/i18n/locale/pl/general.json
index 3d1b76f47..736589732 100644
--- a/app/javascript/dashboard/i18n/locale/pl/general.json
+++ b/app/javascript/dashboard/i18n/locale/pl/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Szukaj",
"EMPTY_STATE": "Nie znaleziono rekordów"
- }
+ },
+ "CLOSE": "Zamknij"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/generalSettings.json b/app/javascript/dashboard/i18n/locale/pl/generalSettings.json
index f1e43ddac..50ae20b2e 100644
--- a/app/javascript/dashboard/i18n/locale/pl/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pl/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Ustawienia konta",
"SUBMIT": "Zaktualizuj ustawienia",
"BACK": "Powrót",
@@ -8,6 +14,26 @@
"ERROR": "Nie udało się zaktualizować ustawień, spróbuj ponownie!",
"SUCCESS": "Ustawienia konta zostały pomyślnie zaktualizowane"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Usuń",
+ "DISMISS": "Anuluj",
+ "PLACE_HOLDER": "Proszę wpisać {accountName}, aby potwierdzić"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Proszę poprawić błędy formularza",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID konta",
"NOTE": "To ID jest wymagane, jeśli tworzysz integrację opartą na API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferencje",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Nazwa konta",
"PLACEHOLDER": "Nazwa konta",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "E-mail obsługi klienta Twojej firmy",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Liczba dni po upływie których rozmowa powinna zostać automatycznie zamknięta z powodu braku aktywności",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Wprowadź poprawną wartość dla czasu automatycznego zamykania rozmów (minimum 1 dzień, maksimum 999 dni)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Aktualizuj",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Kontynuacja rozmów za pomocą wiadomości e-mail jest włączona dla Twojego konta.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Dostępna jest aktualizacja do wersji {latestChatwootVersion} Chatwoot. Proszę zaktualizować swoją instancję.",
"LEARN_MORE": "Dowiedz się więcej",
"PAYMENT_PENDING": "Twoja płatność jest w toku. Zaktualizuj informacje o płatności, aby kontynuować korzystanie z Chatwoot.",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Twoje konto przekroczyło limit użytkowania. Zaktualizuj swój plan, aby kontynuować korzystanie z Chatwoot.",
"OPEN_BILLING": "Otwórz fakturę"
},
diff --git a/app/javascript/dashboard/i18n/locale/pl/helpCenter.json b/app/javascript/dashboard/i18n/locale/pl/helpCenter.json
index 1524a3eff..5bba3a2fc 100644
--- a/app/javascript/dashboard/i18n/locale/pl/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/pl/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug jest wymagany"
+ "ERROR": "Slug jest wymagany",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json
index 29d7d77a2..8396d148e 100644
--- a/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Nazwa skrzynki odbiorczej",
"ADD_NAME": "Dodaj nazwę skrzynki odbiorczej",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Wybierz wartość"
+ "PICK_A_VALUE": "Wybierz wartość",
+ "CREATE_INBOX": "Utwórz skrzynkę odbiorczą"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Aby dodać swój profil na Twitterze jako kanał, musisz uwierzytelnić swój profil Twittera, klikając „Zaloguj się przez Twitter”",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Formularz czatu wstępnego",
"BUSINESS_HOURS": "Godziny pracy",
"WIDGET_BUILDER": "Kreator widżetów",
- "BOT_CONFIGURATION": "Konfiguracja bota"
+ "BOT_CONFIGURATION": "Konfiguracja bota",
+ "CSAT": "CSAT"
},
"SETTINGS": "Ustawienia",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Włącz skrzynkę odbiorczą e-mail",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Włącz lub wyłącz skrzynkę zbierania wiadomości e-mail w nowej konwersacji",
"AUTO_ASSIGNMENT": "Włącz automatyczne przypisanie",
- "ENABLE_CSAT": "Włącz CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Włącz/Wyłącz ankietę CSAT(Customer satisfraction) po rozwiązaniu rozmowy",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Włącz ciągłość rozmowy przez e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Rozmowy będą kontynuowane przez e-mail, jeśli adres e-mail kontaktu jest dostępny.",
@@ -568,6 +577,32 @@
"LABEL": "Odwiedzający powinni podać swoje imię i nazwisko oraz adres e-mail przed rozpoczęciem czatu"
}
},
+ "CSAT": {
+ "TITLE": "Włącz CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Wiadomość",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "zawiera",
+ "DOES_NOT_CONTAINS": "nie zawiera"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Ustaw swoją dostępność",
"SUBTITLE": "Ustaw swoją dostępność na widżecie na czacie",
@@ -753,7 +788,8 @@
"EMAIL": "E-mail",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "Kanał API"
+ "API": "Kanał API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/integrations.json b/app/javascript/dashboard/i18n/locale/pl/integrations.json
index 12a30e382..65752a63f 100644
--- a/app/javascript/dashboard/i18n/locale/pl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/pl/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Aktualizacja wiadomości",
"WEBWIDGET_TRIGGERED": "Użytkownik otworzył czat na żywo",
"CONTACT_CREATED": "Utworzenie kontaktu",
- "CONTACT_UPDATED": "Aktualizacja kontaktu"
+ "CONTACT_UPDATED": "Aktualizacja kontaktu",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Tak, usuń",
"CANCEL": "Anuluj"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Wyślij wiadomość...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Wpisz treść wiadomości...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Aktualizuj",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Funkcje",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Imię",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Opis",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Funkcje",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/pl/macros.json b/app/javascript/dashboard/i18n/locale/pl/macros.json
index 198090670..9b48b8faa 100644
--- a/app/javascript/dashboard/i18n/locale/pl/macros.json
+++ b/app/javascript/dashboard/i18n/locale/pl/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Wycisz kontakt",
+ "SNOOZE_CONVERSATION": "Zatrzymaj rozmowę",
+ "RESOLVE_CONVERSATION": "Zamknij rozmowę",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Zmień priorytet",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/report.json b/app/javascript/dashboard/i18n/locale/pl/report.json
index f319cf5b6..d365d1221 100644
--- a/app/javascript/dashboard/i18n/locale/pl/report.json
+++ b/app/javascript/dashboard/i18n/locale/pl/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Przegląd etykiet",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Ładowanie danych wykresów...",
"NO_ENOUGH_DATA": "Nie ma wystarczającej ilości danych do wygenerowania raportu. Spróbuj ponownie później.",
"DOWNLOAD_LABEL_REPORTS": "Pobierz raporty etykiety",
@@ -559,6 +560,7 @@
"INBOX": "Skrzynka odbiorcza",
"AGENT": "Agent",
"TEAM": "Zespół",
+ "LABEL": "Etykieta",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/pl/search.json b/app/javascript/dashboard/i18n/locale/pl/search.json
index 6d30a4c36..cae507868 100644
--- a/app/javascript/dashboard/i18n/locale/pl/search.json
+++ b/app/javascript/dashboard/i18n/locale/pl/search.json
@@ -4,12 +4,14 @@
"ALL": "Wszystkie",
"CONTACTS": "Kontakty",
"CONVERSATIONS": "Rozmowy",
- "MESSAGES": "Wiadomości"
+ "MESSAGES": "Wiadomości",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakty",
"CONVERSATIONS": "Rozmowy",
- "MESSAGES": "Wiadomości"
+ "MESSAGES": "Wiadomości",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/pl/settings.json b/app/javascript/dashboard/i18n/locale/pl/settings.json
index 574c8b8c5..f98ab629b 100644
--- a/app/javascript/dashboard/i18n/locale/pl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/pl/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Token dostępu",
"NOTE": "Ten token może być użyty, jeśli budujesz integrację opartą na API",
- "COPY": "Kopiuj"
+ "COPY": "Kopiuj",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Niedostępny"
},
"SET_AVAILABILITY_SUCCESS": "Dostępność została pomyślnie ustawiona",
- "SET_AVAILABILITY_ERROR": "Nie można ustawić dostępności, spróbuj ponownie"
+ "SET_AVAILABILITY_ERROR": "Nie można ustawić dostępności, spróbuj ponownie",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Twój adres e-mail",
@@ -280,6 +286,7 @@
"REPORTS": "Raporty",
"SETTINGS": "Ustawienia",
"CONTACTS": "Kontakty",
+ "ACTIVE": "Aktywne",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Nazwa firmy",
"PLACEHOLDER": "Przedsiębiorstwo Wayne"
},
- "SUBMIT": "Wyślij"
+ "SUBMIT": "Wyślij",
+ "CANCEL": "Anuluj"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/pt/agentBots.json b/app/javascript/dashboard/i18n/locale/pt/agentBots.json
index 5cab959d6..84b15f403 100644
--- a/app/javascript/dashboard/i18n/locale/pt/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/pt/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "A carregar editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Nome do bot",
- "PLACEHOLDER": "Dê um nome ao seu bot.",
- "ERROR": "O nome do bot é obrigatório."
- },
- "DESCRIPTION": {
- "LABEL": "Descrição do bot",
- "PLACEHOLDER": "O que faz este bot?"
- },
- "BOT_CONFIG": {
- "ERROR": "Por favor, insira, acima, a sua configuração CSML do bot.",
- "API_ERROR": "A sua configuração CSML é inválida. Por favor, corrija-a e tente novamente."
- },
- "SUBMIT": "Validar e guardar"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "Sistema",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Selecione um agente bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Selecionar bot"
},
"ADD": {
- "TITLE": "Configurar novo bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancelar",
"API": {
"SUCCESS_MESSAGE": "Bot adicionado com sucesso.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Nenhum bot encontrado. Pode criar um bot clicando no botão 'Configurar novo bot' ↗️",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "A carregar bots...",
- "TYPE": "Tipo de bot"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "URL do Webhook"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Excluir",
"TITLE": "Apagar bot",
- "SUBMIT": "Excluir",
- "CANCEL_BUTTON_TEXT": "Cancelar",
- "DESCRIPTION": "Tem a certeza que pretende excluir este bot? Esta ação é irreversível.",
+ "CONFIRM": {
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Sim, excluir",
+ "NO": "Não, manter"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot apagado com sucesso.",
"ERROR_MESSAGE": "Não foi possível apagar o bot. Por favor, tente novamente."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Editar",
- "LOADING": "A carregar bots...",
"TITLE": "Editar bot",
- "CANCEL_BUTTON_TEXT": "Cancelar",
"API": {
"SUCCESS_MESSAGE": "Bot atualizado com sucesso.",
"ERROR_MESSAGE": "Não foi possível atualizar o bot. Por favor, tente novamente."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Token de acesso",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Nome do bot",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "O nome do bot é obrigatório"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "O que faz este bot?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "URL do Webhook",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "O nome do bot é obrigatório",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancelar",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/auditLogs.json b/app/javascript/dashboard/i18n/locale/pt/auditLogs.json
index e27895aaf..00914c17d 100644
--- a/app/javascript/dashboard/i18n/locale/pt/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/pt/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/automation.json b/app/javascript/dashboard/i18n/locale/pt/automation.json
index 891017114..eebc50044 100644
--- a/app/javascript/dashboard/i18n/locale/pt/automation.json
+++ b/app/javascript/dashboard/i18n/locale/pt/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "Pelo menos uma condição é obrigatória",
"ATLEAST_ONE_ACTION_REQUIRED": "Pelo menos uma ação é obrigatória"
},
- "NONE_OPTION": "Nenhuma"
+ "NONE_OPTION": "Nenhuma",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversa criada",
+ "CONVERSATION_UPDATED": "Conversa atualizada",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Silenciar Conversa",
+ "SNOOZE_CONVERSATION": "Adiar conversa",
+ "RESOLVE_CONVERSATION": "Resolver conversa",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Enviar anexo",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Alterar prioridade",
+ "ADD_SLA": "Adicionar SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "E-mail",
+ "INBOX": "Caixa de entrada",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Número de telefone",
+ "STATUS": "Situação",
+ "BROWSER_LANGUAGE": "Idioma do navegador",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "País",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Atribuído",
+ "TEAM_NAME": "Equipa",
+ "PRIORITY": "Prioridade"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/components.json b/app/javascript/dashboard/i18n/locale/pt/components.json
index cd5b970a3..df71ba7e8 100644
--- a/app/javascript/dashboard/i18n/locale/pt/components.json
+++ b/app/javascript/dashboard/i18n/locale/pt/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Saber mais",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/contact.json b/app/javascript/dashboard/i18n/locale/pt/contact.json
index 2df6971f2..365108766 100644
--- a/app/javascript/dashboard/i18n/locale/pt/contact.json
+++ b/app/javascript/dashboard/i18n/locale/pt/contact.json
@@ -285,35 +285,36 @@
"HEADER": {
"TITLE": "Contactos",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Messagem",
"SEND_MESSAGE": "Enviar mensagem",
- "BLOCK_CONTACT": "Bloquear contato",
- "UNBLOCK_CONTACT": "Desbloquear contato",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
"BREADCRUMB": {
"CONTACTS": "Contactos"
},
"ACTIONS": {
"CONTACT_CREATION": {
- "ADD_CONTACT": "Editar contato",
- "EXPORT_CONTACT": "Exportar contatos",
- "IMPORT_CONTACT": "Importar contatos",
- "SAVE_CONTACT": "Salvar contato",
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
"EMAIL_ADDRESS_DUPLICATE": "O e-mail inserido já está a ser utilizado por outro contacto.",
"PHONE_NUMBER_DUPLICATE": "Este número já está a ser usado por outro contacto.",
"SUCCESS_MESSAGE": "Contacto guardado com sucesso",
- "ERROR_MESSAGE": "Não foi possível o contato. Por favor, tente mais tarde."
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
},
- "BLOCK_SUCCESS_MESSAGE": "Este contato foi bloqueado com sucesso",
- "BLOCK_ERROR_MESSAGE": "Não foi possível bloquear o contato. Por favor, tente mais tarde.",
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
"UNBLOCK_SUCCESS_MESSAGE": "Este contacto foi desbloqueado",
- "UNBLOCK_ERROR_MESSAGE": "Não foi possível bloquear o contato. Por favor, tente mais tarde.",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
"IMPORT_CONTACT": {
- "TITLE": "Importar contatos",
+ "TITLE": "Import contacts",
"DESCRIPTION": "Importar contactos através de um ficheiro CSV.",
"DOWNLOAD_LABEL": "Descarregar uma amostra CSV.",
"LABEL": "Ficheiro CSV:",
- "CHOOSE_FILE": "Escolher arquivo",
+ "CHOOSE_FILE": "Choose file",
"CHANGE": "Trocar",
"CANCEL": "Cancelar",
"IMPORT": "Importar",
@@ -321,8 +322,8 @@
"ERROR_MESSAGE": "Ocorreu um erro, por favor, tente novamente"
},
"EXPORT_CONTACT": {
- "TITLE": "Exportar contatos",
- "DESCRIPTION": "Exporte rapidamente um arquivo csv com detalhes completos dos seus contatos",
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
"CONFIRM": "Exportar",
"SUCCESS_MESSAGE": "Exportação em progresso. Será notificado via e-mail quando o ficheiro de exportação estiver pronto para descarregar.",
"ERROR_MESSAGE": "Ocorreu um erro, por favor, tente novamente"
@@ -408,44 +409,44 @@
"TITLE": "Editar detalhes do contacto",
"FORM": {
"FIRST_NAME": {
- "PLACEHOLDER": "Digite o primeiro nome"
+ "PLACEHOLDER": "Enter the first name"
},
"LAST_NAME": {
- "PLACEHOLDER": "Digite o sobrenome"
+ "PLACEHOLDER": "Enter the last name"
},
"EMAIL_ADDRESS": {
- "PLACEHOLDER": "Insira um endereço de e-mail",
+ "PLACEHOLDER": "Enter the email address",
"DUPLICATE": "O e-mail inserido já está a ser utilizado por outro contacto."
},
"PHONE_NUMBER": {
- "PLACEHOLDER": "Digite número de telefone",
+ "PLACEHOLDER": "Enter the phone number",
"DUPLICATE": "Este número já está a ser usado por outro contacto."
},
"CITY": {
"PLACEHOLDER": "Escreva o nome da cidade"
},
"COUNTRY": {
- "PLACEHOLDER": "Selecionar País"
+ "PLACEHOLDER": "Select country"
},
"BIO": {
- "PLACEHOLDER": "Digite descrição"
+ "PLACEHOLDER": "Enter the bio"
},
"COMPANY_NAME": {
"PLACEHOLDER": "Insira o nome da empresa"
}
},
- "UPDATE_BUTTON": "Atualizar contato",
- "SUCCESS_MESSAGE": "Contato atualizado com sucesso",
- "ERROR_MESSAGE": "Não foi possível atualizar o contato. Por favor, tente mais tarde."
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
},
"SOCIAL_MEDIA": {
- "TITLE": "Editar redes sociais",
+ "TITLE": "Edit social links",
"FORM": {
"FACEBOOK": {
- "PLACEHOLDER": "Adicionar Facebook"
+ "PLACEHOLDER": "Add Facebook"
},
"GITHUB": {
- "PLACEHOLDER": "Adicionar Github"
+ "PLACEHOLDER": "Add Github"
},
"INSTAGRAM": {
"PLACEHOLDER": "Add Instagram"
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Excluir contacto",
"DELETE_DIALOG": {
"TITLE": "Confirmar exclusão",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Sim, excluir",
"API": {
"SUCCESS_MESSAGE": "Contacto excluído com sucesso",
@@ -543,43 +548,47 @@
"PLACEHOLDER": "Adicionar nota",
"WROTE": "escreveu",
"YOU": "Você",
- "SAVE": "Salvar nota",
- "EMPTY_STATE": "Não existem notas associadas a este contato. Você pode adicionar uma nota digitando a caixa acima."
+ "SAVE": "Save note",
+ "EXPAND": "Expandir",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
+ "EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
"EMPTY_STATE": {
- "TITLE": "Nenhum contato encontrado nesta conta",
- "SUBTITLE": "Para adicionar novos contatos, clique no botão abaixo",
- "BUTTON_LABEL": "Editar contato",
+ "TITLE": "No contacts found in this account",
+ "SUBTITLE": "Start adding new contacts by clicking on the button below",
+ "BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Nenhum contacto corresponde à sua pesquisa 🔍",
- "LIST_EMPTY_STATE_TITLE": "Não há contatos disponíveis nesta visualização 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
"CONTACT_SEARCH": {
- "ERROR_MESSAGE": "Não foi possível concluir a pesquisa. Por favor, tente novamente."
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
},
"FORM": {
"GO_TO_CONVERSATION": "Ver",
- "SUCCESS_MESSAGE": "Mensagem enviada com sucesso!",
- "ERROR_MESSAGE": "Ocorreu um erro ao criar a conversa. Tente novamente mais tarde.",
- "NO_INBOX_ALERT": "Não há caixas de entrada disponíveis para iniciar uma conversa com este contato.",
+ "SUCCESS_MESSAGE": "The message was sent successfully!",
+ "ERROR_MESSAGE": "An error occurred while creating the conversation. Please try again later.",
+ "NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
"CONTACT_SELECTOR": {
"LABEL": "Para:",
- "TAG_INPUT_PLACEHOLDER": "Procurar por um contato com o nome, e-mail ou número de telefone",
- "CONTACT_CREATING": "Criando contato..."
+ "TAG_INPUT_PLACEHOLDER": "Search for a contact with name, email or phone number",
+ "CONTACT_CREATING": "Creating contact..."
},
"INBOX_SELECTOR": {
"LABEL": "Via:",
- "BUTTON": "Mostrar caixas de entrada"
+ "BUTTON": "Show inboxes"
},
"EMAIL_OPTIONS": {
"SUBJECT_LABEL": "Assunto :",
- "SUBJECT_PLACEHOLDER": "Insira seu assunto do e-mail aqui",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
"CC_LABEL": "Cc:",
- "CC_PLACEHOLDER": "Procurar um contato com seu endereço de e-mail",
+ "CC_PLACEHOLDER": "Search for a contact with their email address",
"BCC_LABEL": "Bcc:",
- "BCC_PLACEHOLDER": "Procurar um contato com seu endereço de e-mail",
+ "BCC_PLACEHOLDER": "Search for a contact with their email address",
"BCC_BUTTON": "Bcc"
},
"MESSAGE_EDITOR": {
diff --git a/app/javascript/dashboard/i18n/locale/pt/conversation.json b/app/javascript/dashboard/i18n/locale/pt/conversation.json
index 804997a85..d2eab7850 100644
--- a/app/javascript/dashboard/i18n/locale/pt/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/pt/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "A carregar conversas",
"CANNOT_REPLY": "Não pode responder porque",
"24_HOURS_WINDOW": "Mensagens bloqueadas durante 24 horas",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Esta conversa não está atribuída a si. Gostaria de atribuir esta conversa a si mesmo?",
"ASSIGN_TO_ME": "Atribuir a mim",
"TWILIO_WHATSAPP_CAN_REPLY": "Só pode responder utilizando uma mensagem modelo, porque",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Mensagens bloqueadas durante 24 horas",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Está a responder a:",
"REMOVE_SELECTION": "Remover seleção",
"DOWNLOAD": "Descarregar",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolver",
"REOPEN_ACTION": "Reabrir",
"OPEN_ACTION": "Abertas",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Mais",
"CLOSE": "Fechar",
"DETAILS": "Detalhes",
@@ -115,6 +118,11 @@
"FAILED": "Não foi possível alterar a prioridade, por favor, tente novamente."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Excluir"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Marcar como pendente",
"RESOLVED": "Marcar como resolvida",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Atribuir etiqueta",
"AGENTS_LOADING": "A carregar agentes...",
"ASSIGN_TEAM": "Atribuir equipa",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversa com ID {conversationId} atribuída a \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Etiqueta atribuída com sucesso",
"ASSIGN_LABEL_FAILED": "Falha na atribuição de etiqueta",
"CHANGE_TEAM": "Equipa da conversa alterada",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "O ficheiro excede o tamanho limite para anexos de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
"MESSAGE_ERROR": "Não foi possível enviar esta mensagem, por favor, tente novamente mais tarde",
"SENT_BY": "Enviado por:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Ações de conversa",
"CONVERSATION_LABELS": "Etiquetas da conversa",
"CONVERSATION_INFO": "Informação da conversa",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Atributos do contacto",
"PREVIOUS_CONVERSATION": "Conversas anteriores",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/pt/general.json b/app/javascript/dashboard/i18n/locale/pt/general.json
index 4c5b9608b..79bbb56d8 100644
--- a/app/javascript/dashboard/i18n/locale/pt/general.json
+++ b/app/javascript/dashboard/i18n/locale/pt/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Procurar",
"EMPTY_STATE": "Nenhum resultado encontrado"
- }
+ },
+ "CLOSE": "Fechar"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/generalSettings.json b/app/javascript/dashboard/i18n/locale/pt/generalSettings.json
index bbe5779a8..25eaf917f 100644
--- a/app/javascript/dashboard/i18n/locale/pt/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pt/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Configurações da conta",
"SUBMIT": "Atualizar configurações",
"BACK": "Voltar",
@@ -8,6 +14,26 @@
"ERROR": "Não foi possível atualizar as configurações, por favor, tente novamente!",
"SUCCESS": "Configurações de conta atualizadas com sucesso"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Excluir",
+ "DISMISS": "Cancelar",
+ "PLACE_HOLDER": "Por favor, digite {accountName} para confirmar"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Por favor, corrigir erros de formulário",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID da conta",
"NOTE": "Este ID é necessário para integrações via API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferências",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Nome da conta",
"PLACEHOLDER": "Nome da sua conta",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "E-mail de suporte da sua empresa",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Número de dias sem nenhuma atividade, após os quais o ticket se auto-resolve",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Por favor, indique um período de resolução automática válido (mínimo de 1 dia e máximo de 999 dias)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Atualização",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "A sua conta tem a opção de continuar as conversas por e-mail ativa.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Está disponível uma nova atualização {latestChatwootVersion} para o ChatWoot. Por favor, atualize a sua versão.",
"LEARN_MORE": "Saber mais",
"PAYMENT_PENDING": "O seu pagamento está pendente. Por favor, atualize as suas informações de pagamento para continuar a usar o Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "A sua conta excedeu os limites de utilização. Por favor, faça um upgrade ao seu plano para continuar a utilizar o Chatwoot",
"OPEN_BILLING": "Abrir faturação"
},
diff --git a/app/javascript/dashboard/i18n/locale/pt/helpCenter.json b/app/javascript/dashboard/i18n/locale/pt/helpCenter.json
index 6eedcf54a..9d7fecba9 100644
--- a/app/javascript/dashboard/i18n/locale/pt/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/pt/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug obrigatória"
+ "ERROR": "Slug obrigatória",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json
index b21adf2ff..dd293d91e 100644
--- a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Nome da caixa de entrada",
"ADD_NAME": "Adicione um nome à sua caixa de entrada",
"PICK_NAME": "Selecione um nome para a sua caixa de entrada",
- "PICK_A_VALUE": "Escolha um valor"
+ "PICK_A_VALUE": "Escolha um valor",
+ "CREATE_INBOX": "Criar caixa de entrada"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Para adicionar o seu perfil do Twitter como um canal, precisa de autenticar o seu perfil do Twitter clicando em 'Entrar com o Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Formulário pré-chat",
"BUSINESS_HOURS": "Horário comercial",
"WIDGET_BUILDER": "Construtor de widgets",
- "BOT_CONFIGURATION": "Configuração do bot"
+ "BOT_CONFIGURATION": "Configuração do bot",
+ "CSAT": "CSAT"
},
"SETTINGS": "Configurações",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Ativar caixa de receção de e-mail",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Ativar ou desativar caixa de receção de e-mails para as novas conversas",
"AUTO_ASSIGNMENT": "Ativar atribuição automática",
- "ENABLE_CSAT": "Ativar CSAT",
"SENDER_NAME_SECTION": "Adicionar o nome do agente ao e-mail",
- "ENABLE_CSAT_SUB_TEXT": "Ativar/Desativar envio do questionário CSAT (satisfação do cliente) depois de resolver uma conversa",
"SENDER_NAME_SECTION_TEXT": "Ativar/Desativar exibição do nome do agente no e-mail. Se estiver desativado, exibirá o nome da empresa",
"ENABLE_CONTINUITY_VIA_EMAIL": "Ativar continuidade das conversas por e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "As conversas irão continuar por e-mail se o endereço de e-mail do contacto estiver disponível.",
@@ -568,6 +577,32 @@
"LABEL": "Os visitantes devem digitar o seu nome e e-mail antes de iniciarem uma conversa"
}
},
+ "CSAT": {
+ "TITLE": "Ativar CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Messagem",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contém",
+ "DOES_NOT_CONTAINS": "não contém"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Definir disponibilidade",
"SUBTITLE": "Defina a sua disponibilidade no widget do livechat",
@@ -753,7 +788,8 @@
"EMAIL": "E-mail",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "Canal da API"
+ "API": "Canal da API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/integrations.json b/app/javascript/dashboard/i18n/locale/pt/integrations.json
index 430c52de7..60b69375f 100644
--- a/app/javascript/dashboard/i18n/locale/pt/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/pt/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Mensagem atualizada",
"WEBWIDGET_TRIGGERED": "Widget de live-chat aberto pelo utilizador",
"CONTACT_CREATED": "Contacto criado",
- "CONTACT_UPDATED": "Contacto atualizado"
+ "CONTACT_UPDATED": "Contacto atualizado",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Problema desvinculado com sucesso",
"ERROR": "Houve um erro ao desvincular o problema, por favor, tente novamente"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Sim, excluir",
"CANCEL": "Cancelar"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Enviar mensagem...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Você",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Você",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Escreva a sua mensagem...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "Pode alterar ou cancelar o plano a qualquer momento"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Por favor, entre em contato com o administrador para atualização."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Atualização",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Características",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Nome:",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Características",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/pt/macros.json b/app/javascript/dashboard/i18n/locale/pt/macros.json
index dfc45a772..ad427b303 100644
--- a/app/javascript/dashboard/i18n/locale/pt/macros.json
+++ b/app/javascript/dashboard/i18n/locale/pt/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Parâmetros de ação obrigatórios",
"ATLEAST_ONE_CONDITION_REQUIRED": "Pelo menos uma condição é obrigatória",
"ATLEAST_ONE_ACTION_REQUIRED": "Pelo menos uma ação é obrigatória"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Silenciar Conversa",
+ "SNOOZE_CONVERSATION": "Adiar conversa",
+ "RESOLVE_CONVERSATION": "Resolver conversa",
+ "SEND_ATTACHMENT": "Enviar anexo",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Alterar prioridade",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/report.json b/app/javascript/dashboard/i18n/locale/pt/report.json
index adc370f9d..cdd25f66c 100644
--- a/app/javascript/dashboard/i18n/locale/pt/report.json
+++ b/app/javascript/dashboard/i18n/locale/pt/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Visão geral de etiquetas",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "A carregar dados...",
"NO_ENOUGH_DATA": "Não recebemos pontos de dados suficientes para gerar o relatório. Por favor, tente novamente mais tarde.",
"DOWNLOAD_LABEL_REPORTS": "Descarregar relatórios de etiquetas",
@@ -559,6 +560,7 @@
"INBOX": "Caixa de entrada",
"AGENT": "Agente",
"TEAM": "Equipa",
+ "LABEL": "Etiqueta",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/pt/search.json b/app/javascript/dashboard/i18n/locale/pt/search.json
index 8550c2b5e..26646a36a 100644
--- a/app/javascript/dashboard/i18n/locale/pt/search.json
+++ b/app/javascript/dashboard/i18n/locale/pt/search.json
@@ -4,12 +4,14 @@
"ALL": "TODOS",
"CONTACTS": "Contactos",
"CONVERSATIONS": "Conversas",
- "MESSAGES": "Mensagens"
+ "MESSAGES": "Mensagens",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contactos",
"CONVERSATIONS": "Conversas",
- "MESSAGES": "Mensagens"
+ "MESSAGES": "Mensagens",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/pt/settings.json b/app/javascript/dashboard/i18n/locale/pt/settings.json
index 4e9019b36..b428b5558 100644
--- a/app/javascript/dashboard/i18n/locale/pt/settings.json
+++ b/app/javascript/dashboard/i18n/locale/pt/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Token de acesso",
"NOTE": "Este token pode ser usado se você estiver construindo uma integração baseada em API",
- "COPY": "Copiar"
+ "COPY": "Copiar",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Ausente"
},
"SET_AVAILABILITY_SUCCESS": "Disponibilidade foi definida com sucesso",
- "SET_AVAILABILITY_ERROR": "Não foi possível definir a disponibilidade, por favor tente novamente"
+ "SET_AVAILABILITY_ERROR": "Não foi possível definir a disponibilidade, por favor tente novamente",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Seu endereço de e-mail",
@@ -280,6 +286,7 @@
"REPORTS": "relatórios",
"SETTINGS": "Configurações",
"CONTACTS": "Contactos",
+ "ACTIVE": "Ativa",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Nome da empresa",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "submeter"
+ "SUBMIT": "submeter",
+ "CANCEL": "Cancelar"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/pt/teamsSettings.json b/app/javascript/dashboard/i18n/locale/pt/teamsSettings.json
index 645a806f4..b50283cd7 100644
--- a/app/javascript/dashboard/i18n/locale/pt/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pt/teamsSettings.json
@@ -100,7 +100,7 @@
"NO": "cancelar"
}
},
- "SETTINGS": "Configurações",
+ "SETTINGS": "Confirgurações",
"FORM": {
"UPDATE": "Atualizar a equipa",
"CREATE": "Criar uma equipa",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/advancedFilters.json b/app/javascript/dashboard/i18n/locale/pt_BR/advancedFilters.json
index e4d6dca36..7958f4c14 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/advancedFilters.json
@@ -45,10 +45,10 @@
"FALSE": "Falso"
},
"ATTRIBUTES": {
- "STATUS": "Situação",
- "ASSIGNEE_NAME": "Nome do responsável",
- "INBOX_NAME": "Nome da Caixa de Entrada",
- "TEAM_NAME": "Nome da equipe",
+ "STATUS": "Status",
+ "ASSIGNEE_NAME": "Agente atribuído",
+ "INBOX_NAME": "Caixa de Entrada",
+ "TEAM_NAME": "Nome do Time",
"CONVERSATION_IDENTIFIER": "Identificador da conversa",
"CAMPAIGN_NAME": "Nome da campanha",
"LABELS": "Etiquetas",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/agentBots.json b/app/javascript/dashboard/i18n/locale/pt_BR/agentBots.json
index 5899b39b4..6292cee86 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Robôs",
"LOADING_EDITOR": "Carregando Editor...",
- "DESCRIPTION": "Robôs agentes são como os membros mais fabulosos da sua equipe. Eles podem lidar com as pequenas coisas, assim você pode focar nas coisas que importam. Dê uma oportunidade a eles. Você pode gerenciar seus robôs a partir desta página ou criar novos usando o botão 'Configurar novo robô'.",
+ "DESCRIPTION": "Robôs agentes são como os membros mais fabulosos de seu time. Eles podem lidar com as pequenas coisas, assim você pode focar nas coisas que importam. Dê uma chance a eles. Você pode gerenciar seus robôs a partir desta página ou criar novos usando o botão 'Criar Robô'.",
"LEARN_MORE": "Aprenda sobre os robôs agentes",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Nome do Robô",
- "PLACEHOLDER": "Nomeie seu Robô.",
- "ERROR": "O nome do Robô é obrigatório."
- },
- "DESCRIPTION": {
- "LABEL": "Descrição do Robô",
- "PLACEHOLDER": "O que esse robô faz?"
- },
- "BOT_CONFIG": {
- "ERROR": "Por favor, insira a configuração CSML do Robô acima.",
- "API_ERROR": "Sua configuração CSML é inválida. Por favor, corrija e tente novamente."
- },
- "SUBMIT": "Validar e salvar"
+ "GLOBAL_BOT": "Robô do sistema",
+ "GLOBAL_BOT_BADGE": "Sistema",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Avatar do robô excluído com sucesso",
+ "ERROR_DELETE": "Erro ao excluir o avatar do robô, tente novamente"
},
"BOT_CONFIGURATION": {
"TITLE": "Selecione um robô de agente",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Selecionar Robô"
},
"ADD": {
- "TITLE": "Configurar novo robô",
+ "TITLE": "Criar Robô",
"CANCEL_BUTTON_TEXT": "Cancelar",
"API": {
"SUCCESS_MESSAGE": "Bot adicionado com sucesso.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Nenhum robô encontrado. Você pode criar um robô clicando no botão 'Configurar novo robô' ↗",
+ "404": "Nenhum robô encontrado. Você pode criar um robô clicando no botão 'Criar Robô'.",
"LOADING": "Buscando robôs...",
- "TYPE": "Tipo de Robô"
+ "TABLE_HEADER": {
+ "DETAILS": "Detalhe do Robô",
+ "URL": "URL do Webhook"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Excluir",
"TITLE": "Deletar robô",
- "SUBMIT": "Excluir",
- "CANCEL_BUTTON_TEXT": "Cancelar",
- "DESCRIPTION": "Tem certeza que deseja excluir este bot? Esta ação é irreversível.",
+ "CONFIRM": {
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem certeza que deseja excluir {name}?",
+ "YES": "Sim, excluir",
+ "NO": "Não, Mantenha"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot excluído com sucesso.",
"ERROR_MESSAGE": "Não foi possível excluir o robô. Por favor, tente novamente."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Alterar",
- "LOADING": "Buscando robôs...",
"TITLE": "Alterar Robô",
- "CANCEL_BUTTON_TEXT": "Cancelar",
"API": {
"SUCCESS_MESSAGE": "Robô atualizado com sucesso.",
"ERROR_MESSAGE": "Não foi possível atualizar o robô. Por favor, tente novamente mais tarde."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Token de acesso",
+ "DESCRIPTION": "Copie o token de acesso e salve-o de forma segura",
+ "COPY_SUCCESSFUL": "Token de acesso copiado para área de transferência",
+ "RESET_SUCCESS": "Token de acesso gerado novamente com sucesso",
+ "RESET_ERROR": "Não foi possível regerar o token de acesso. Por favor, tente novamente"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Avatar do robô"
+ },
+ "NAME": {
+ "LABEL": "Nome do Robô",
+ "PLACEHOLDER": "Insira o nome do robô",
+ "REQUIRED": "O nome do Robô é obrigatório"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "O que esse robô faz?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "URL do Webhook",
+ "PLACEHOLDER": "https://exemplo.com.br/webhook",
+ "REQUIRED": "URL Webhook é necessária"
+ },
+ "ERRORS": {
+ "NAME": "O nome do Robô é obrigatório",
+ "URL": "URL Webhook é necessária",
+ "VALID_URL": "Digite uma URL válida começando com http:// ou https://"
+ },
+ "CANCEL": "Cancelar",
+ "CREATE": "Criar um Robô",
+ "UPDATE": "Atualizar o Robô"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure um robô de Webhook para integrar com seus serviços personalizados. O robô receberá e processará eventos de conversas e pode respondê-los."
+ },
"TYPES": {
- "WEBHOOK": "Webhook robô",
- "CSML": "CSML robô"
+ "WEBHOOK": "Webhook robô"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json
index 6bcaf6a17..87c112cec 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json
@@ -3,7 +3,7 @@
"HEADER": "Agentes",
"HEADER_BTN_TXT": "Adicionar Agente",
"LOADING": "Buscando lista de agente",
- "DESCRIPTION": "Um agente é um membro da sua equipe de atendimento ao cliente que pode visualizar e responder às mensagens de usuários. A lista abaixo mostra todos os agentes de sua conta.",
+ "DESCRIPTION": "Um agente é um membro de seu time de atendimento ao cliente que pode visualizar e responder às mensagens de usuários. A lista abaixo mostra todos os agentes de sua conta.",
"LEARN_MORE": "Saiba mais sobre as funções do usuário",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrador",
@@ -11,18 +11,18 @@
},
"LIST": {
"404": "Não existem agentes associados a esta conta",
- "TITLE": "Gerenciar agentes da sua equipe",
+ "TITLE": "Gerenciar agentes de seu time",
"DESC": "Você pode adicionar e/ou remover agentes de um time.",
"NAME": "Nome",
"EMAIL": "E-mail",
- "STATUS": "Situação",
+ "STATUS": "Status",
"ACTIONS": "Ações",
"VERIFIED": "Verificado",
"VERIFICATION_PENDING": "Verificação Pendente",
"AVAILABLE_CUSTOM_ROLE": "Permissões de função personalizada disponíveis"
},
"ADD": {
- "TITLE": "Adicionar agente ao seu time",
+ "TITLE": "Adicionar agente a seu time",
"DESC": "Você pode adicionar pessoas que poderão acompanhar o suporte de suas caixas de entrada.",
"CANCEL_BUTTON_TEXT": "Cancelar",
"FORM": {
@@ -103,7 +103,7 @@
"PLACEHOLDER": "Nenhum",
"TITLE": {
"AGENT": "Selecionar agente",
- "TEAM": "Selecionar equipe"
+ "TEAM": "Selecionar time"
},
"LIST": {
"NONE": "Nenhum"
@@ -111,11 +111,11 @@
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Nenhum agente encontrado",
- "TEAM": "Nenhuma equipe encontrada"
+ "TEAM": "Nenhum time encontrado"
},
"PLACEHOLDER": {
"AGENT": "Pesquisar agentes",
- "TEAM": "Pesquisar equipes",
+ "TEAM": "Pesquisar times",
"INPUT": "Pesquisar por agentes"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/auditLogs.json b/app/javascript/dashboard/i18n/locale/pt_BR/auditLogs.json
index 94aa08bf1..51996b6c7 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/auditLogs.json
@@ -3,7 +3,7 @@
"HEADER": "Auditoria",
"HEADER_BTN_TXT": "Adicionar Logs de Auditoria",
"LOADING": "Buscando Logs de Auditoria",
- "DESCRIPTION": "Logs de Auditoria mantêm um registro de atividades em sua conta, permitindo que você acompanhe e auditore sua conta, equipe ou serviços.",
+ "DESCRIPTION": "Logs de Auditoria mantêm um registro de atividades em sua conta, permitindo que você acompanhe e auditore sua conta, time ou serviços.",
"LEARN_MORE": "Saiba mais sobre os logs de auditoria",
"SEARCH_404": "Não existem itens correspondentes a esta consulta",
"SIDEBAR_TXT": "Logs de Auditoria
Os Logs de Auditoria são rastros para eventos e ações em um Sistema Chatwoot.
",
@@ -50,9 +50,9 @@
"SIGN_OUT": "{agentName} Se desconectou"
},
"TEAM": {
- "ADD": "{agentName} criou uma equipe (#{id})",
- "EDIT": "{agentName} atualizou uma equipe (#{id})",
- "DELETE": "{agentName} excluiu uma equipe (#{id})"
+ "ADD": "{agentName} criou um time (#{id})",
+ "EDIT": "{agentName} atualizou um time (#{id})",
+ "DELETE": "{agentName} excluiu um time (#{id})"
},
"MACRO": {
"ADD": "{agentName} criou uma nova macro (#{id})",
@@ -64,11 +64,14 @@
"REMOVE": "{agentName} removeu {user} da caixa de entrada (#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "{agentName} adicionou {user} à equipe (#{team_id})",
- "REMOVE": "{agentName} removeu {user} da equipe (#{team_id})"
+ "ADD": "{agentName} adicionou {user} ao time (#{team_id})",
+ "REMOVE": "{agentName} removeu {user} do time (#{team_id})"
},
"ACCOUNT": {
"EDIT": "O {agentName} atualizou a configuração da conta (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} excluiu a conversa #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/automation.json b/app/javascript/dashboard/i18n/locale/pt_BR/automation.json
index 473c93533..5b3af42a7 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/automation.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/automation.json
@@ -1,7 +1,7 @@
{
"AUTOMATION": {
"HEADER": "Automação",
- "DESCRIPTION": "A automação pode substituir e simplificar processos existentes que requerem esforço manual, como a adição de etiquetas e a atribuição de conversas ao agente mais adequado. Isso permite que a equipe se concentre em seus pontos fortes e reduza o tempo gasto em tarefas rotineiras.",
+ "DESCRIPTION": "A automação pode substituir e simplificar processos existentes que requerem esforço manual, como a adição de etiquetas e a atribuição de conversas ao agente mais adequado. Isso permite que o time se concentre em seus pontos fortes e reduza o tempo gasto em tarefas rotineiras.",
"LEARN_MORE": "Aprenda mais sobre automação",
"HEADER_BTN_TXT": "Adicionar regra de automação",
"LOADING": "Buscando regras de automação",
@@ -94,7 +94,7 @@
"ACTION": {
"DELETE_MESSAGE": "Você precisa ter pelo menos uma ação para salvar",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Escreva sua mensagem aqui",
- "TEAM_DROPDOWN_PLACEHOLDER": "Selecione equipes",
+ "TEAM_DROPDOWN_PLACEHOLDER": "Selecione times",
"EMAIL_INPUT_PLACEHOLDER": "Insira o e-mail",
"URL_INPUT_PLACEHOLDER": "Insira a URL"
},
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "Pelo menos uma condição é necessária",
"ATLEAST_ONE_ACTION_REQUIRED": "Pelo menos uma ação é necessária"
},
- "NONE_OPTION": "Nenhuma"
+ "NONE_OPTION": "Nenhuma",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversa Criada",
+ "CONVERSATION_UPDATED": "Conversa Atualizada",
+ "MESSAGE_CREATED": "Mensagem Criada",
+ "CONVERSATION_OPENED": "Conversa Aberta"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Atribuir ao Agente",
+ "ASSIGN_TEAM": "Atribuir um Time",
+ "ADD_LABEL": "Adicionar uma Etiqueta",
+ "REMOVE_LABEL": "Remover uma Etiqueta",
+ "SEND_EMAIL_TO_TEAM": "Enviar um e-mail para o Time",
+ "SEND_EMAIL_TRANSCRIPT": "Enviar uma transcrição por e-mail",
+ "MUTE_CONVERSATION": "Silenciar Conversa",
+ "SNOOZE_CONVERSATION": "Adiar Conversa",
+ "RESOLVE_CONVERSATION": "Resolver Conversa",
+ "SEND_WEBHOOK_EVENT": "Enviar evento de Webhook",
+ "SEND_ATTACHMENT": "Enviar Anexo",
+ "SEND_MESSAGE": "Enviar Mensagem",
+ "CHANGE_PRIORITY": "Alterar Prioridade",
+ "ADD_SLA": "Adicionar SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Tipo da Mensagem",
+ "MESSAGE_CONTAINS": "A mensagem contém",
+ "EMAIL": "e-mail",
+ "INBOX": "Caixa de Entrada",
+ "CONVERSATION_LANGUAGE": "Idioma da conversa",
+ "PHONE_NUMBER": "Número de Telefone",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Idioma do navegador",
+ "MAIL_SUBJECT": "Assunto do e-mail",
+ "COUNTRY_NAME": "País/região",
+ "REFERER_LINK": "Link de origem",
+ "ASSIGNEE_NAME": "Agente atribuído",
+ "TEAM_NAME": "Time",
+ "PRIORITY": "Prioridade"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json b/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json
index e07bb48ef..e4153129c 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json
@@ -9,7 +9,7 @@
"YES": "Sim",
"SEARCH_INPUT_PLACEHOLDER": "Pesquisar",
"ASSIGN_AGENT_TOOLTIP": "Atribuir Agente",
- "ASSIGN_TEAM_TOOLTIP": "Atribuir equipe",
+ "ASSIGN_TEAM_TOOLTIP": "Atribuir time",
"ASSIGN_SUCCESFUL": "Conversas atribuídas com sucesso.",
"ASSIGN_FAILED": "Falha ao atribuir conversas. Por favor, tente novamente.",
"RESOLVE_SUCCESFUL": "Conversas resolvidas com sucesso.",
@@ -30,12 +30,12 @@
"ASSIGN_FAILED": "Falha ao atribuir etiquetas. Por favor, tente novamente."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Selecionar equipe",
+ "TEAM_SELECT_LABEL": "Selecionar time",
"NONE": "Nenhum",
- "NO_TEAMS_AVAILABLE": "Ainda não há equipes adicionadas a esta conta.",
- "ASSIGN_SELECTED_TEAMS": "Atribuir equipe selecionada.",
+ "NO_TEAMS_AVAILABLE": "Ainda não há times adicionados a esta conta.",
+ "ASSIGN_SELECTED_TEAMS": "Atribuir time selecionado.",
"ASSIGN_SUCCESFUL": "Times atribuídos com sucesso.",
- "ASSIGN_FAILED": "Falha ao atribuir equipe. Por favor, tente novamente."
+ "ASSIGN_FAILED": "Falha ao atribuir time. Por favor, tente novamente."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json b/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json
index 431eaafe7..d60cc1c06 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json
@@ -39,7 +39,7 @@
"VIEW_FILTER": "Visualizar",
"SORT_TOOLTIP_LABEL": "Ordenar conversas",
"CHAT_SORT": {
- "STATUS": "Situação",
+ "STATUS": "Status",
"ORDER_BY": "Ordenar por"
},
"CHAT_TIME_STAMP": {
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/components.json b/app/javascript/dashboard/i18n/locale/pt_BR/components.json
index ca2714b6a..e877c4f24 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/components.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/components.json
@@ -42,6 +42,12 @@
},
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Saiba mais",
- "WATCH_VIDEO": "Assista ao vídeo"
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutos",
+ "HOURS": "Horas",
+ "DAYS": "Dias",
+ "PLACEHOLDER": "Insira a duração"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/contact.json b/app/javascript/dashboard/i18n/locale/pt_BR/contact.json
index 40b903b54..0bbee4de3 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/contact.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/contact.json
@@ -283,15 +283,16 @@
},
"CONTACTS_LAYOUT": {
"HEADER": {
- "TITLE": "Contato",
+ "TITLE": "Contatos",
"SEARCH_TITLE": "Pesquisar contatos",
+ "ACTIVE_TITLE": "Contatos ativos",
"SEARCH_PLACEHOLDER": "Pesquisar...",
"MESSAGE_BUTTON": "Enviar Mensagem",
"SEND_MESSAGE": "Enviar mensagem",
"BLOCK_CONTACT": "Bloquear contato",
"UNBLOCK_CONTACT": "Desbloquear contato",
"BREADCRUMB": {
- "CONTACTS": "Contato"
+ "CONTACTS": "Contatos"
},
"ACTIONS": {
"CONTACT_CREATION": {
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Adicionar Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "Esta ação é permanente e irreversível.",
+ "BUTTON": "Excluir agora"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Excluir contato",
"DELETE_DIALOG": {
"TITLE": "Confirmar exclusão",
- "DESCRIPTION": "Tem certeza de que deseja excluir este contato {contactName}?",
+ "DESCRIPTION": "Tem certeza de que deseja excluir este contato?",
"CONFIRM": "Sim, excluir",
"API": {
"SUCCESS_MESSAGE": "Contato excluído com sucesso",
@@ -544,6 +549,9 @@
"WROTE": "escreveu",
"YOU": "Você",
"SAVE": "Salvar nota",
+ "EXPAND": "Expandir",
+ "COLLAPSE": "Recolher",
+ "NO_NOTES": "Sem notas, você pode adicionar notas a partir da página de detalhes do contato.",
"EMPTY_STATE": "Não existem notas associadas a este contato. Você pode adicionar uma nota digitando na caixa acima."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Comece a adicionar novos contatos clicando no botão abaixo",
"BUTTON_LABEL": "Adicionar contato",
"SEARCH_EMPTY_STATE_TITLE": "Nenhum contato corresponde à sua pesquisa 🔍",
- "LIST_EMPTY_STATE_TITLE": "Não há contatos disponíveis nesta visualização 📋"
+ "LIST_EMPTY_STATE_TITLE": "Não há contatos disponíveis nesta visualização 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "Nenhum contato está ativo no momento 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json b/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json
index 87c081c1f..c426a4cac 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Carregando conversas",
"CANNOT_REPLY": "Você não pode responder porque",
"24_HOURS_WINDOW": "Restrições de janela de mensagem de 24 horas",
+ "API_HOURS_WINDOW": "Você só pode responder a esta conversa em {hours} horas",
"NOT_ASSIGNED_TO_YOU": "Esta conversa não está atribuída a você. Gostaria de atribuir esta conversa a você mesmo?",
"ASSIGN_TO_ME": "Atribuir a mim",
"TWILIO_WHATSAPP_CAN_REPLY": "Você só pode responder a esta conversa usando um modelo de mensagem devido a",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Restrições de janela de mensagem de 24 horas",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "Esta conta do Instagram foi migrada para a nova caixa de entrada do canal do Instagram. Todas as novas mensagens serão mostradas lá. Você não poderá mais enviar mensagens desta conversa.",
"REPLYING_TO": "Você está respondendo a:",
"REMOVE_SELECTION": "Remover seleção",
"DOWNLOAD": "Baixar",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolver",
"REOPEN_ACTION": "Reabrir",
"OPEN_ACTION": "Abrir",
+ "MORE_ACTIONS": "Mais ações",
"OPEN": "Mais",
"CLOSE": "Fechar",
"DETAILS": "detalhes",
@@ -115,6 +118,11 @@
"FAILED": "Não foi possível alterar a prioridade. Por favor, tente novamente."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Excluir conversa #{conversationId}",
+ "DESCRIPTION": "Tem certeza que deseja excluir esta conversa?",
+ "CONFIRM": "Excluir"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Deixar pendente",
"RESOLVED": "Marcar como resolvida",
@@ -130,7 +138,8 @@
"ASSIGN_AGENT": "Atribuir Agente",
"ASSIGN_LABEL": "Atribuir etiqueta",
"AGENTS_LOADING": "Carregando agentes...",
- "ASSIGN_TEAM": "Atribuir equipe",
+ "ASSIGN_TEAM": "Atribuir time",
+ "DELETE": "Excluir conversa",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "ID da conversa {conversationId} atribuído para \"{agentName}\"",
@@ -141,8 +150,8 @@
"FAILED": "Não foi possível atribuir etiqueta. Por favor, tente novamente."
},
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Equipe {team} atribuído para o id de conversa {conversationId}",
- "FAILED": "Não foi possível atribuir equipe. Por favor, tente novamente."
+ "SUCCESFUL": "Time {team} atribuído para o id de conversa {conversationId}",
+ "FAILED": "Não foi possível atribuir time. Por favor, tente novamente."
}
}
},
@@ -197,14 +206,16 @@
}
}
},
- "VISIBLE_TO_AGENTS": "Mensagem Privada: Apenas visível para você e sua equipe",
+ "VISIBLE_TO_AGENTS": "Mensagem Privada: Apenas visível para você e seu time",
"CHANGE_STATUS": "Estado da conversa mudou",
- "CHANGE_STATUS_FAILED": "Mudança de situação da conversa falhou",
- "CHANGE_AGENT": "Responsável da conversa alterado",
+ "CHANGE_STATUS_FAILED": "Mudança de status da conversa falhou",
+ "CHANGE_AGENT": "Novo agente atribuído",
"CHANGE_AGENT_FAILED": "Falha ao atribuir outro agente",
"ASSIGN_LABEL_SUCCESFUL": "Etiqueta atribuída com sucesso",
"ASSIGN_LABEL_FAILED": "Falha ao atribuir etiqueta",
- "CHANGE_TEAM": "Situação da conversa mudou",
+ "CHANGE_TEAM": "Status da conversa mudou",
+ "SUCCESS_DELETE_CONVERSATION": "Conversa excluída com sucesso",
+ "FAIL_DELETE_CONVERSATION": "Não foi possível excluir a conversa! Tente novamente",
"FILE_SIZE_LIMIT": "O arquivo excede os {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB do limite para anexos",
"MESSAGE_ERROR": "Não foi possível enviar esta mensagem, por favor, tente novamente mais tarde",
"SENT_BY": "Enviado por:",
@@ -232,7 +243,7 @@
}
},
"SIDEBAR": {
- "CONTACT": "Contato",
+ "CONTACT": "Contatos",
"COPILOT": "Copiloto"
}
},
@@ -266,9 +277,9 @@
"NEW_LINK": "Clique aqui para criar uma caixa de entrada"
},
"TEAM_MEMBERS": {
- "TITLE": "Convidar membros da sua equipe",
- "DESCRIPTION": "Já que você está se preparando para conversar com seu cliente, traga seus colegas para ajudá-lo. Você pode convidar seus colegas de equipe adicionando os endereços de e-mail deles na lista de agentes.",
- "NEW_LINK": "Clique aqui para convidar um membro da equipe"
+ "TITLE": "Convidar membros de seu time",
+ "DESCRIPTION": "Já que você está se preparando para conversar com seu cliente, traga seus colegas para ajudá-lo. Você pode convidar seus colegas adicionando os endereços de e-mail deles na lista de agentes.",
+ "NEW_LINK": "Clique aqui para convidar um membro do time"
},
"LABELS": {
"TITLE": "Organizar conversas com etiquetas",
@@ -284,7 +295,7 @@
"CONVERSATION_SIDEBAR": {
"ASSIGNEE_LABEL": "Agente atribuído",
"SELF_ASSIGN": "Atribuir a mim",
- "TEAM_LABEL": "Equipe atribuída",
+ "TEAM_LABEL": "Time atribuído",
"SELECT": {
"PLACEHOLDER": "Nenhuma"
},
@@ -293,28 +304,30 @@
"CONVERSATION_ACTIONS": "Ações da conversa",
"CONVERSATION_LABELS": "Etiquetas da conversa",
"CONVERSATION_INFO": "Informação da conversa",
+ "CONTACT_NOTES": "Notas do contato",
"CONTACT_ATTRIBUTES": "Atributos do contato",
"PREVIOUS_CONVERSATION": "Conversas anteriores",
"MACROS": "Macros",
- "SHOPIFY_ORDERS": "Pedidos Shopify"
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
- "ORDER_ID": "Pedido #{id}",
- "ERROR": "Erro ao carregar pedidos",
- "NO_SHOPIFY_ORDERS": "Nenhum pedido encontrado",
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
"FINANCIAL_STATUS": {
"PENDING": "Pendentes",
- "AUTHORIZED": "Autorizado",
- "PARTIALLY_PAID": "Parcialmente pago",
- "PAID": "Pago",
- "PARTIALLY_REFUNDED": "Parcialmente reembolsado",
- "REFUNDED": "Reembolsado",
- "VOIDED": "Anulado"
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
},
"FULFILLMENT_STATUS": {
- "FULFILLED": "Processado",
- "PARTIALLY_FULFILLED": "Parcialmente processado",
- "UNFULFILLED": "Não processado"
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/customRole.json b/app/javascript/dashboard/i18n/locale/pt_BR/customRole.json
index 1148d7f77..9632739e4 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/customRole.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/customRole.json
@@ -9,7 +9,7 @@
"PAYWALL": {
"TITLE": "Atualize para criar funções personalizadas",
"AVAILABLE_ON": "O recurso de função personalizada está disponível apenas nos planos \"Business\" e \"Enterprise\".",
- "UPGRADE_PROMPT": "Atualize seu plano para obter acesso a recursos avançados como gerenciamento de equipe, automações, atributos personalizados e muito mais.",
+ "UPGRADE_PROMPT": "Atualize seu plano para obter acesso a recursos avançados como gerenciamento de time, automações, atributos personalizados e muito mais.",
"UPGRADE_NOW": "Atualizar agora",
"CANCEL_ANYTIME": "Você pode alterar ou cancelar seu plano a qualquer momento"
},
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/general.json b/app/javascript/dashboard/i18n/locale/pt_BR/general.json
index 69b1703e9..098727d54 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/general.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Pesquisar",
"EMPTY_STATE": "Nenhum resultado encontrado"
- }
+ },
+ "CLOSE": "Fechar"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json b/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json
index ae44e4831..6ea40a2ec 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "Você excedeu o limite de conversas. O plano Hacker permite apenas 500 conversas.",
+ "INBOXES": "Você excedeu o limite da caixa de entrada. O plano Hacker só suporta chat ao vivo do site. Caixas adicionais como e-mail, WhatsApp etc. requerem um plano pago.",
+ "AGENTS": "Você excedeu o limite de agentes. O plano Hacker permite apenas 2 agentes.",
+ "NON_ADMIN": "Entre em contato com o administrador para atualizar o plano e continuar usando todos os recursos."
+ },
"TITLE": "Conta",
"SUBMIT": "Atualizar configurações",
"BACK": "Anterior",
@@ -8,6 +14,26 @@
"ERROR": "Não foi possível atualizar as configurações, tente novamente!",
"SUCCESS": "Configurações de conta atualizadas com sucesso"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Excluir sua Conta",
+ "NOTE": "Após excluir sua conta, todos os seus dados serão excluídos.",
+ "BUTTON_TEXT": "Excluir sua conta",
+ "CONFIRM": {
+ "TITLE": "Excluir Conta",
+ "MESSAGE": "Excluir sua conta é irreversível. Digite o nome de sua conta abaixo para confirmar que você deseja excluí-la permanentemente.",
+ "BUTTON_TEXT": "Excluir",
+ "DISMISS": "Cancelar",
+ "PLACE_HOLDER": "Digite {accountName} para confirmar"
+ },
+ "SUCCESS": "Conta marcada para exclusão",
+ "FAILURE": "Não foi possível excluir a conta, tente novamente!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Conta agendada para exclusão",
+ "MESSAGE_MANUAL": "Esta conta está programada para exclusão em {deletionDate}. Isto foi solicitado por um administrador. Você pode cancelar a exclusão antes desta data.",
+ "MESSAGE_INACTIVITY": "Esta conta está programada para exclusão em {deletionDate} devido à inatividade da conta. Você pode cancelar a exclusão antes desta data.",
+ "CLEAR_BUTTON": "Cancelar Exclusão Programada"
+ }
+ },
"FORM": {
"ERROR": "Por favor, corrigir erros de formulário",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID da Conta",
"NOTE": "Este ID é necessário se você está construindo uma integração baseada em API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Resolver conversas automaticamente",
+ "NOTE": "Essa configuração permitirá que você resolva automaticamente a conversa após um determinado período de inatividade.",
+ "DURATION": {
+ "LABEL": "Duração da inatividade",
+ "HELP": "Período de tempo de inatividade após o qual a conversa é resolvida automaticamente",
+ "PLACEHOLDER": "30",
+ "ERROR": "O tempo decorrido para resolução automática deve ser entre 10 minutos e 999 dias",
+ "API": {
+ "SUCCESS": "Configurações de resolução automática atualizadas com sucesso",
+ "ERROR": "Falha ao atualizar as configurações de resolução automática"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Mensagem personalizada de resolução automática",
+ "PLACEHOLDER": "A conversa foi marcada como resolvida pelo sistema por ter 15 dias de inatividade",
+ "HELP": "Mensagem enviada ao cliente após a resolução automática da conversa"
+ },
+ "PREFERENCES": "Preferências",
+ "LABEL": {
+ "LABEL": "Adicionar etiqueta após resolução automática",
+ "PLACEHOLDER": "Selecione a etiqueta"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Pular conversas aguardando a resposta do agente"
+ },
+ "UPDATE_BUTTON": "Salvar Alterações"
+ },
"NAME": {
"LABEL": "Nome da Conta",
"PLACEHOLDER": "Nome da sua conta",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "E-mail de suporte da sua empresa",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Excluir conversas não atendidas",
+ "HELP": "Se ativado, o sistema não resolverá conversas que estiverem aguardando a resposta de um atendente."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcrever Mensagens de Áudio",
+ "NOTE": "Transcreve automaticamente mensagens de áudio nas conversas. Gera uma transcrição de texto sempre que uma mensagem de áudio é enviada ou recebida, e a exibe junto da mensagem.",
+ "API": {
+ "SUCCESS": "Configuração de transcrição de áudio atualizada com sucesso",
+ "ERROR": "Falha ao atualizar configuração de transcrição de áudio"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Depois de quantos dias um ticket deve se resolver mesmo caso não haja nenhuma atividade",
+ "LABEL": "Tempo de inatividade para resolução",
+ "HELP": "Tempo de inatividade após o qual a conversa deve ser encerrada automaticamente",
"PLACEHOLDER": "30",
- "ERROR": "Por favor, insira um período de resolução automática válido (mínimo de 1 dia e máximo de 999 dias)"
+ "ERROR": "O tempo decorrido para resolução automática deve ser entre 10 minutos e 999 dias",
+ "API": {
+ "SUCCESS": "Configurações de resolução automática atualizadas com sucesso",
+ "ERROR": "Falha ao atualizar as configurações de resolução automática"
+ },
+ "UPDATE_BUTTON": "Atualizar",
+ "MESSAGE_LABEL": "Mensagem de resolução personalizada",
+ "MESSAGE_PLACEHOLDER": "A conversa foi marcada como resolvida pelo sistema por ter 15 dias de inatividade",
+ "MESSAGE_HELP": "Esta mensagem é enviada ao cliente quando uma conversa é resolvida automaticamente pelo sistema devido à inatividade."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "A continuidade das conversas com e-mails está ativada para sua conta.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Uma atualização {latestChatwootVersion} para o Chatwoot está disponível. Por favor, atualize sua instância.",
"LEARN_MORE": "Saiba mais",
"PAYMENT_PENDING": "Seu pagamento está pendente. Por favor, atualize suas informações de pagamento para continuar usando o Chatwoot",
+ "UPGRADE": "Atualize para continuar usando o Chatwoot",
"LIMITS_UPGRADE": "Sua conta excedeu os limites de uso. Por favor, faça um upgrade do seu plano para continuar usando o Chatwoot",
"OPEN_BILLING": "Abrir faturamento"
},
@@ -110,9 +186,9 @@
"REPORTS": "Relatórios",
"CONVERSATION": "Conversas",
"BULK_ACTIONS": "Ações em massa",
- "CHANGE_ASSIGNEE": "Alterar Responsável",
+ "CHANGE_ASSIGNEE": "Atribuir novo agente",
"CHANGE_PRIORITY": "Alterar Prioridade",
- "CHANGE_TEAM": "Alterar a Equipe",
+ "CHANGE_TEAM": "Alterar o Time",
"SNOOZE_CONVERSATION": "Adiar Conversa",
"ADD_LABEL": "Adicionar etiqueta à conversa",
"REMOVE_LABEL": "Remover etiqueta da conversa",
@@ -129,9 +205,9 @@
"GO_TO_AGENT_REPORTS": "Ir para Relatórios do Agente",
"GO_TO_LABEL_REPORTS": "Ir para Relatórios de Etiquetas",
"GO_TO_INBOX_REPORTS": "Ir para Relatórios da Caixa de Entrada",
- "GO_TO_TEAM_REPORTS": "Ir para Relatórios da Equipe",
+ "GO_TO_TEAM_REPORTS": "Ir para Relatórios de Time",
"GO_TO_SETTINGS_AGENTS": "Ir para Configurações de Agente",
- "GO_TO_SETTINGS_TEAMS": "Ir para as Configurações de Equipe",
+ "GO_TO_SETTINGS_TEAMS": "Ir para as Configurações de Time",
"GO_TO_SETTINGS_INBOXES": "Ir para as Configurações da Caixa de Entrada",
"GO_TO_SETTINGS_LABELS": "Ir para as Configurações de Etiqueta",
"GO_TO_SETTINGS_CANNED_RESPONSES": "Ir para as Configurações de Respostas Prontas",
@@ -143,7 +219,7 @@
"ASSIGN_AN_AGENT": "Atribuir um agente",
"AI_ASSIST": "Assistente IA",
"ASSIGN_PRIORITY": "Atribuir prioridade",
- "ASSIGN_A_TEAM": "Atribuir uma equipe",
+ "ASSIGN_A_TEAM": "Atribuir um time",
"MUTE_CONVERSATION": "Silenciar conversa",
"UNMUTE_CONVERSATION": "Reativar conversa",
"REMOVE_LABEL_FROM_CONVERSATION": "Remover etiqueta da conversa",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json b/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json
index 4559f74f9..9c7ec6a14 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json
@@ -320,7 +320,7 @@
"TITLE": "Título",
"CATEGORY": "Categoria",
"READ_COUNT": "Visualizações",
- "STATUS": "Situação",
+ "STATUS": "Status",
"LAST_EDITED": "Última edição"
},
"COLUMNS": {
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug é obrigatório"
+ "ERROR": "Slug é obrigatório",
+ "FORMAT_ERROR": "Por favor, insira um slug válido, por exemplo: guia do usuário"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json
index 2a4f91be4..cc728f880 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Nome da Caixa de Entrada",
"ADD_NAME": "Adicione um nome para sua caixa de entrada",
"PICK_NAME": "Escolha um nome para sua caixa de entrada",
- "PICK_A_VALUE": "Escolha um valor"
+ "PICK_A_VALUE": "Escolha um valor",
+ "CREATE_INBOX": "Criar Caixa de Entrada"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continuar com o Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Conecte seu perfil do Instagram",
+ "HELP": "Para adicionar seu perfil do Instagram como um canal, você precisa autenticar seu perfil do Instagram clicando em 'Continuar com o Instagram' ",
+ "ERROR_MESSAGE": "Houve um erro ao conectar ao Instagram, por favor, tente novamente",
+ "ERROR_AUTH": "Houve um erro ao conectar ao Instagram, por favor, tente novamente",
+ "NEW_INBOX_SUGGESTION": "Esta conta do Instagram estava conectada a uma caixa de entrada diferente e agora foi migrada para aqui. Todas as novas mensagens aparecerão aqui. A caixa de entrada antiga não poderá mais enviar ou receber mensagens para esta conta.",
+ "DUPLICATE_INBOX_BANNER": "Esta conta do Instagram foi migrada para a nova caixa de entrada de canal do Instagram. Você não poderá mais enviar/receber mensagens do Instagram desta caixa de entrada."
},
"TWITTER": {
"HELP": "Para adicionar seu perfil do Twitter como um canal, você precisa autenticar seu perfil do Twitter clicando em 'Entrar com o Twitter' ",
@@ -232,8 +242,8 @@
"ERROR": "Por favor, insira um valor válido."
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "ID da Conta de Negócios",
- "PLACEHOLDER": "Por favor, insira o ID da Conta de Negócios obtido do painel do desenvolvedor do Facebook.",
+ "LABEL": "ID da conta do WhatsApp Business",
+ "PLACEHOLDER": "Por favor, insira o ID da conta do WhatsApp Business obtido do painel do desenvolvedor do Facebook.",
"ERROR": "Por favor, insira um valor válido."
},
"WEBHOOK_VERIFY_TOKEN": {
@@ -465,13 +475,14 @@
},
"TABS": {
"SETTINGS": "Configurações",
- "COLLABORATORS": "Colaboradores",
+ "COLLABORATORS": "Agentes",
"CONFIGURATION": "Configuração",
"CAMPAIGN": "Campanhas",
"PRE_CHAT_FORM": "Formulário Chat Pré",
"BUSINESS_HOURS": "Horário de funcionamento",
"WIDGET_BUILDER": "Construtor de Widget",
- "BOT_CONFIGURATION": "Configuração do Bot"
+ "BOT_CONFIGURATION": "Configuração do Bot",
+ "CSAT": "CSAT"
},
"SETTINGS": "Configurações",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Ativar caixa de coleta de e-mail",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Ativar ou desativar caixa de coleta de e-mails em novas conversas",
"AUTO_ASSIGNMENT": "Habilitar atribuição automática",
- "ENABLE_CSAT": "Habilitar CSAT",
"SENDER_NAME_SECTION": "Habilitar o Nome do Agente no E-mail",
- "ENABLE_CSAT_SUB_TEXT": "Ativar/Desativar pesquisa CSAT(satisfação do cliente) após resolver uma conversa",
"SENDER_NAME_SECTION_TEXT": "Ativar/Desativar exibição do nome do agente no e-mail, se estiver desativado, exibirá o nome da empresa",
"ENABLE_CONTINUITY_VIA_EMAIL": "Habilitar continuidade das conversas por e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "As conversas continuarão sobre o e-mail se o endereço de e-mail de contato estiver disponível.",
@@ -568,6 +577,32 @@
"LABEL": "Os visitantes devem fornecer seu nome e endereço de e-mail antes de iniciar o bate-papo"
}
},
+ "CSAT": {
+ "TITLE": "Habilitar CSAT",
+ "SUBTITLE": "Iniciar automaticamente pesquisas de CSAT no final das conversas para entender como os clientes se sentem em relação à sua experiência de suporte. Acompanhe as tendências de satisfação e identifique áreas para melhoria ao longo do tempo.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Tipo de exibição"
+ },
+ "MESSAGE": {
+ "LABEL": "Mensagem",
+ "PLACEHOLDER": "Digite uma mensagem para mostrar aos usuários com o formulário"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Regra de pesquisa",
+ "DESCRIPTION_PREFIX": "Enviar a pesquisa se a conversa",
+ "DESCRIPTION_SUFFIX": "qualquer uma das etiquetas",
+ "OPERATOR": {
+ "CONTAINS": "contém",
+ "DOES_NOT_CONTAINS": "não contém"
+ },
+ "SELECT_PLACEHOLDER": "selecionar etiquetas"
+ },
+ "NOTE": "Nota: pesquisas de CSAT são enviadas apenas uma vez por conversa",
+ "API": {
+ "SUCCESS_MESSAGE": "Configurações de CSAT atualizadas com sucesso",
+ "ERROR_MESSAGE": "Não foi possível atualizar as configurações do CSAT. Por favor, tente novamente mais tarde."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Definir a sua disponibilidade",
"SUBTITLE": "Defina a sua disponibilidade no widget livechat",
@@ -584,7 +619,7 @@
"VALIDATION_ERROR": "Hora inicial deve ser antes de hora de fechamento.",
"CHOOSE": "Selecione"
},
- "ALL_DAY": "Todos os Dias"
+ "ALL_DAY": "O dia todo"
},
"IMAP": {
"TITLE": "IMAP",
@@ -753,7 +788,8 @@
"EMAIL": "e-mail",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "Canal da API"
+ "API": "Canal da API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json b/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json
index 33b371ef7..c0fbf9888 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json
@@ -2,21 +2,21 @@
"INTEGRATION_SETTINGS": {
"SHOPIFY": {
"DELETE": {
- "TITLE": "Excluir integração com Shopify",
- "MESSAGE": "Tem certeza de que deseja excluir a integração com Shopify?"
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
},
"STORE_URL": {
- "TITLE": "Conectar loja Shopify",
- "LABEL": "URL da loja",
- "PLACEHOLDER": "sua-loja.myshopify.com",
- "HELP": "Insira a URL myshopify.com da sua loja Shopify",
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
"CANCEL": "Cancelar",
- "SUBMIT": "Conectar loja"
+ "SUBMIT": "Connect Store"
},
- "ERROR": "Ocorreu um erro ao conectar com o Shopify. Por favor, tente novamente ou entre em contato com o suporte se o problema persistir."
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
},
"HEADER": "Integrações",
- "DESCRIPTION": "Chatwoot se integra com várias ferramentas e serviços para melhorar a eficiência da sua equipe. Explore a lista abaixo para configurar seus aplicativos favoritos.",
+ "DESCRIPTION": "Chatwoot se integra com várias ferramentas e serviços para melhorar a eficiência de seu time. Explore a lista abaixo para configurar seus aplicativos favoritos.",
"LEARN_MORE": "Aprenda mais sobre integrações",
"LOADING": "Obtendo integrações",
"CAPTAIN": {
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Mensagem atualizada",
"WEBWIDGET_TRIGGERED": "Widget de chat aberto pelo usuário",
"CONTACT_CREATED": "Contato criado",
- "CONTACT_UPDATED": "Contato atualizado"
+ "CONTACT_UPDATED": "Contato atualizado",
+ "CONVERSATION_TYPING_ON": "Status de Digitação ativado",
+ "CONVERSATION_TYPING_OFF": "Status de Digitação desativado"
}
},
"END_POINT": {
@@ -239,13 +241,13 @@
"LINEAR": {
"ADD_OR_LINK_BUTTON": "Criar/Ligar Issue Linear",
"LOADING": "Buscando problemas lineares...",
- "LOADING_ERROR": "Houve um erro ao buscar as entidades da equipe, por favor, tente novamente",
+ "LOADING_ERROR": "Houve um erro ao buscar as entidades do time, por favor, tente novamente",
"CREATE": "Criar",
"LINK": {
"SEARCH": "Pesquisar issues",
"SELECT": "Selecionar problema",
"TITLE": "Link",
- "EMPTY_LIST": "",
+ "EMPTY_LIST": "Nenhum problema linear encontrado",
"LOADING": "Carregando",
"ERROR": "Houve um erro ao buscar as questões lineares, por favor, tente novamente",
"LINK_SUCCESS": "Questão vinculada com sucesso",
@@ -266,10 +268,10 @@
"PLACEHOLDER": "Insira a descrição"
},
"TEAM": {
- "LABEL": "Equipes",
- "PLACEHOLDER": "Selecionar equipe",
- "SEARCH": "Pesquisar equipe",
- "REQUIRED_ERROR": "A equipe é obrigatória"
+ "LABEL": "Times",
+ "PLACEHOLDER": "Selecionar time",
+ "SEARCH": "Pesquisar time",
+ "REQUIRED_ERROR": "O time é obrigatório"
},
"ASSIGNEE": {
"LABEL": "Responsável",
@@ -279,7 +281,7 @@
"PRIORITY": {
"LABEL": "Prioridade",
"PLACEHOLDER": "Selecionar prioridade",
- "SEARCH": "Selecionar prioridade"
+ "SEARCH": "Pesquisar prioridade"
},
"LABEL": {
"LABEL": "Nome do campo",
@@ -287,7 +289,7 @@
"SEARCH": "Pesquisar etiqueta"
},
"STATUS": {
- "LABEL": "Situação",
+ "LABEL": "Status",
"PLACEHOLDER": "Selecione Status",
"SEARCH": "Pesquisar status"
},
@@ -301,11 +303,11 @@
"CANCEL": "Cancelar",
"CREATE_SUCCESS": "Pasta criada com sucesso",
"CREATE_ERROR": "Houve um erro ao criar a questão, por favor, tente novamente",
- "LOADING_TEAM_ERROR": "Houve um erro ao buscar as equipes, por favor, tente novamente",
- "LOADING_TEAM_ENTITIES_ERROR": "Houve um erro ao buscar as entidades da equipe, por favor, tente novamente"
+ "LOADING_TEAM_ERROR": "Houve um erro ao buscar os times, por favor, tente novamente",
+ "LOADING_TEAM_ENTITIES_ERROR": "Houve um erro ao buscar as entidades do time, por favor, tente novamente"
},
"ISSUE": {
- "STATUS": "Situação",
+ "STATUS": "Status",
"PRIORITY": "Prioridade",
"ASSIGNEE": "Responsável",
"LABELS": "Etiquetas",
@@ -316,24 +318,67 @@
"SUCCESS": "Issue desvinculada com sucesso",
"ERROR": "Houve um erro ao desvincular o atributo, por favor, tente novamente"
},
+ "NO_LINKED_ISSUES": "Nenhuma tarefa vinculada foi encontrada",
"DELETE": {
"TITLE": "Tem certeza que deseja excluir esta integração?",
"MESSAGE": "Tem certeza que deseja excluir esta integração?",
"CONFIRM": "Sim, excluir",
"CANCEL": "Cancelar"
+ },
+ "CTA": {
+ "TITLE": "Conectar ao Linear",
+ "AGENT_DESCRIPTION": "O espaço de trabalho do Linear não está conectado. Solicite ao seu administrador para conectar um espaço de trabalho para usar essa integração.",
+ "DESCRIPTION": "O espaço de trabalho do Linear não está conectado. Clique no botão abaixo para conectar seu espaço de trabalho para usar essa integração.",
+ "BUTTON_TEXT": "Conectar espaço de trabalho do Linear"
}
}
},
"CAPTAIN": {
- "NAME": "Captain",
- "HEADER_KNOW_MORE": "Saiba mais",
+ "NAME": "Capitão",
+ "HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copiloto",
+ "TRY_THESE_PROMPTS": "Experimente estes comandos",
+ "PANEL_TITLE": "Comece a usar o Copiloto",
+ "KICK_OFF_MESSAGE": "Precisa de um resumo rápido, quer verificar conversas passadas ou redigir uma resposta melhor? O Copiloto está aqui para acelerar as coisas.",
"SEND_MESSAGE": "Enviar mensagem...",
+ "EMPTY_MESSAGE": "Houve um erro ao gerar a resposta. Por favor, tente novamente.",
"LOADER": "Capitão está pensando",
"YOU": "Você",
"USE": "Use isto",
"RESET": "Reiniciar",
- "SELECT_ASSISTANT": "Selecione o Assistente"
+ "SHOW_STEPS": "Mostrar etapas",
+ "SELECT_ASSISTANT": "Selecione o Assistente",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Resumir esta conversa",
+ "CONTENT": "Resuma os pontos-chave discutidos entre o cliente e o agente de suporte, incluindo as preocupações do cliente, as questões e as soluções ou respostas dadas pelo agente de suporte"
+ },
+ "SUGGEST": {
+ "LABEL": "Sugerir uma resposta",
+ "CONTENT": "Analise a pergunta do cliente e elabore uma resposta que responda efetivamente às suas preocupações ou perguntas. Certifique-se de que a resposta seja clara, concisa e forneça informações úteis."
+ },
+ "RATE": {
+ "LABEL": "Avaliar esta conversa",
+ "CONTENT": "Revise a conversa para ver o quanto ela atende às necessidades do cliente. Compartilhe uma classificação de 0 a 5 com base em tom, clareza e eficácia."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Conversas de alta prioridade",
+ "CONTENT": "Dê um resumo de todas as conversas abertas com prioridade alta. Incluir o ID da conversa, nome do cliente (se disponível), o conteúdo da última mensagem e o agente atribuído. O grupo por status, se relevante."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Listar contatos",
+ "CONTENT": "Mostre-me a lista dos 10 contatos mais frequentes. Inclua nome, e-mail ou número de telefone (se disponível), visto por última vez, etiquetas (se houver)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Você",
+ "ASSISTANT": "Assistente",
+ "MESSAGE_PLACEHOLDER": "Digite sua mensagem...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use este playground para enviar mensagens para seu assistente e verificar se ele responde com precisão, rápido e no tom que você espera.",
+ "CREDIT_NOTE": "As mensagens enviadas aqui usam os créditos do seu Capitão."
},
"PAYWALL": {
"TITLE": "Atualize para usar o Capitão IA",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "Você pode alterar ou cancelar seu plano a qualquer momento"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "A função de Capitão AI só está disponível num plano pago.",
"UPGRADE_PROMPT": "Atualize seu plano para ter acesso aos nossos assistentes, copilotos e muito mais.",
"ASK_ADMIN": "Entre em contato com seu administrador para fazer a atualização."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistentes",
+ "NO_ASSISTANTS_AVAILABLE": "Não há assistentes disponíveis em sua conta.",
"ADD_NEW": "Criar um novo assistente",
"DELETE": {
"TITLE": "Tem certeza que deseja excluir o assistente?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "Ocorreu um erro ao criar o assistente, por favor tente novamente."
},
"FORM": {
+ "UPDATE": "Atualizar",
+ "SECTIONS": {
+ "BASIC_INFO": "Informações Básicas",
+ "SYSTEM_MESSAGES": "Mensagens do Sistema",
+ "INSTRUCTIONS": "Instruções",
+ "FEATURES": "Funcionalidades",
+ "TOOLS": "Ferramentas "
+ },
"NAME": {
- "LABEL": "Nome do Assistente",
- "PLACEHOLDER": "Insira um nome para o assistente",
- "ERROR": "Por favor, forneça um nome para o assistente"
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Digite o nome do assistente",
+ "ERROR": "O nome é obrigatório"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Temperatura da resposta",
+ "DESCRIPTION": "Ajuste o quão criativo ou restritivo as respostas do assistente devem ser. Valores mais baixos produzem respostas mais focadas e deterministas, enquanto valores mais altos permitem resultados mais criativos e variados."
},
"DESCRIPTION": {
- "LABEL": "Descrição do Assistente",
- "PLACEHOLDER": "Descreva como e onde este assistente será usado",
- "ERROR": "É necessária uma descrição"
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "Digite a descrição do assistente",
+ "ERROR": "A descrição é obrigatória"
},
"PRODUCT_NAME": {
"LABEL": "Nome do Produto",
- "PLACEHOLDER": "Digite o nome do produto para o qual este assistente foi projetado",
+ "PLACEHOLDER": "Digite o nome do produto",
"ERROR": "O nome do produto é obrigatório"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Mensagem de boas-vindas",
+ "PLACEHOLDER": "Digite a mensagem de boas-vindas"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Mensagem de transferência",
+ "PLACEHOLDER": "Digite a mensagem de transferência"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Mensagem de resolução",
+ "PLACEHOLDER": "Digite a mensagem de resolução"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instruções",
+ "PLACEHOLDER": "Digite as instruções para o assistente"
+ },
"FEATURES": {
"TITLE": "Funcionalidades",
"ALLOW_CONVERSATION_FAQS": "Gerar perguntas frequentes a partir de conversas resolvidas",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Atualizar o assistente",
"SUCCESS_MESSAGE": "O assistente foi criado com sucesso",
- "ERROR_MESSAGE": "Ocorreu um erro ao criar o assistente, por favor tente novamente."
+ "ERROR_MESSAGE": "Ocorreu um erro ao criar o assistente, por favor tente novamente.",
+ "NOT_FOUND": "Não foi possível encontrar o assistente. Tente novamente."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Editar Assistente",
@@ -408,8 +482,8 @@
"TITLE": "Não há assistentes disponíveis",
"SUBTITLE": "Crie um assistente para fornecer respostas rápidas e precisas aos seus usuários. Ele pode aprender com seus artigos de ajuda e conversas passadas.",
"FEATURE_SPOTLIGHT": {
- "TITLE": "Assistente Captain",
- "NOTE": "O Assistente Capitão interage diretamente com os clientes, aprende com seus documentos de ajuda e conversas passadas, e fornece respostas instantâneas e precisas. Ele lida com as consultas iniciais, oferecendo soluções rápidas antes de transferir para um agente quando necessário."
+ "TITLE": "Captain Assistant",
+ "NOTE": "Captain Assistant engages directly with customers, learns from your help docs and past conversations, and delivers instant, accurate responses. It handles the initial queries, providing quick resolutions before transferring to an agent when needed."
}
}
},
@@ -453,8 +527,8 @@
"TITLE": "Nenhum documento disponível",
"SUBTITLE": "Os documentos são usados pelo seu assistente para gerar perguntas frequentes. Pode importar documentos para fornecer um contexto para seu assistente.",
"FEATURE_SPOTLIGHT": {
- "TITLE": "Documentos Captain",
- "NOTE": "Um documento no Captain serve como um recurso de conhecimento para o assistente. Ao conectar sua central de ajuda ou guias, o Captain pode analisar o conteúdo e fornecer respostas precisas para as perguntas dos clientes."
+ "TITLE": "Captain Document",
+ "NOTE": "A document in Captain serves as a knowledge resource for the assistant. By connecting your help center or guides, Captain can analyze the content and provide accurate responses for customer inquiries."
}
}
},
@@ -491,7 +565,7 @@
"ALL_ASSISTANTS": "Todos"
},
"STATUS": {
- "TITLE": "Situação",
+ "TITLE": "Status",
"PENDING": "Pendentes",
"APPROVED": "Aceito",
"ALL": "Todos"
@@ -534,8 +608,8 @@
"TITLE": "Nenhuma FAQ encontrada",
"SUBTITLE": "Perguntas Frequentes ajudam seu assistente a fornecer respostas rápidas e precisas para perguntas de seus clientes. Eles podem ser gerados automaticamente a partir do seu conteúdo ou podem ser adicionados manualmente.",
"FEATURE_SPOTLIGHT": {
- "TITLE": "Perguntas Frequentes do Captain",
- "NOTE": "As Perguntas Frequentes do Captain detectam dúvidas comuns dos clientes — sejam elas ausentes da sua base de conhecimento ou frequentemente feitas — e geram respostas relevantes para melhorar o suporte. Você pode revisar cada sugestão e decidir se deseja aprová-la ou rejeitá-la."
+ "TITLE": "Captain FAQ",
+ "NOTE": "Captain FAQs detects common customer questions—whether missing from your knowledge base or frequently asked—and generates relevant FAQs to improve support. You can review each suggestion and decide whether to approve or reject it."
}
}
},
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/macros.json b/app/javascript/dashboard/i18n/locale/pt_BR/macros.json
index 4dba4127b..02261ef04 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/macros.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Os parâmetros de ação são necessários",
"ATLEAST_ONE_CONDITION_REQUIRED": "Pelo menos uma condição é necessária",
"ATLEAST_ONE_ACTION_REQUIRED": "Pelo menos uma ação é necessária"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Atribuir um Time",
+ "ASSIGN_AGENT": "Atribuir um Agente",
+ "ADD_LABEL": "Adicionar uma Etiqueta",
+ "REMOVE_LABEL": "Remover uma Etiqueta",
+ "REMOVE_ASSIGNED_TEAM": "Remover Time Atribuído",
+ "SEND_EMAIL_TRANSCRIPT": "Enviar uma transcrição por e-mail",
+ "MUTE_CONVERSATION": "Silenciar Conversa",
+ "SNOOZE_CONVERSATION": "Adiar Conversa",
+ "RESOLVE_CONVERSATION": "Resolver Conversa",
+ "SEND_ATTACHMENT": "Enviar Anexo",
+ "SEND_MESSAGE": "Enviar uma Mensagem",
+ "CHANGE_PRIORITY": "Alterar Prioridade",
+ "ADD_PRIVATE_NOTE": "Adicionar uma Nota Privada",
+ "SEND_WEBHOOK_EVENT": "Enviar evento de Webhook"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/report.json b/app/javascript/dashboard/i18n/locale/pt_BR/report.json
index e246d5ee1..47f875068 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/report.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/report.json
@@ -120,7 +120,7 @@
},
"PAGINATION": {
"RESULTS": "Exibindo {start} — {end} de {total} resultados",
- "PER_PAGE_TEMPLATE": "{size} / página"
+ "PER_PAGE_TEMPLATE": "{size} / page"
}
},
"AGENT_REPORTS": {
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Visão Geral das Etiquetas",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Carregando dados do gráfico...",
"NO_ENOUGH_DATA": "Não existem dados suficientes para gerar o relatório. Tente novamente mais tarde.",
"DOWNLOAD_LABEL_REPORTS": "Baixar relatórios de etiquetas",
@@ -327,12 +328,12 @@
}
},
"TEAM_REPORTS": {
- "HEADER": "Resumo da Equipe",
- "DESCRIPTION": "Obtenha um instantâneo do desempenho da sua equipe com métricas essenciais, incluindo conversas, tempos de resposta, tempos de resolução e casos resolvidos. Clique no nome da equipe para mais detalhes.",
+ "HEADER": "Resumo do Time",
+ "DESCRIPTION": "Obtenha um instantâneo do desempenho de seu time com métricas essenciais, incluindo conversas, tempos de resposta, tempos de resolução e casos resolvidos. Clique no nome do time para mais detalhes.",
"LOADING_CHART": "Carregando dados do gráfico...",
"NO_ENOUGH_DATA": "Não existem dados suficientes para gerar o relatório. Tente novamente mais tarde.",
- "DOWNLOAD_TEAM_REPORTS": "Baixar relatórios da equipe",
- "FILTER_DROPDOWN_LABEL": "Selecionar Equipe",
+ "DOWNLOAD_TEAM_REPORTS": "Baixar relatórios de time",
+ "FILTER_DROPDOWN_LABEL": "Selecionar Time",
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
@@ -474,23 +475,23 @@
"AGENT": "Agente",
"OPEN": "Abrir",
"UNATTENDED": "Não atendidas",
- "STATUS": "Situação"
+ "STATUS": "Status"
}
},
"TEAM_CONVERSATIONS": {
- "ALL_TEAMS": "Todas as equipes",
- "HEADER": "Conversas por equipes",
- "LOADING_MESSAGE": "Carregando métricas de equipe...",
+ "ALL_TEAMS": "Todos os Times",
+ "HEADER": "Conversas por times",
+ "LOADING_MESSAGE": "Carregando métricas de times...",
"NO_TEAMS": "Não há dados disponíveis",
"TABLE_HEADER": {
- "TEAM": "Equipe",
+ "TEAM": "Time",
"OPEN": "Abrir",
"UNATTENDED": "Não atendidas",
- "STATUS": "Situação"
+ "STATUS": "Status"
}
},
"AGENT_STATUS": {
- "HEADER": "Situação do agente",
+ "HEADER": "Status do agente",
"ONLINE": "Disponível",
"BUSY": "Ocupado",
"OFFLINE": "Desconectado"
@@ -523,13 +524,13 @@
"AGENTS": "Nome do Agente",
"INBOXES": "Nome da Caixa de Entrada",
"LABELS": "Nome da etiqueta",
- "TEAMS": "Nome da equipe"
+ "TEAMS": "Nome do Time"
},
"SLA": "Política SLA",
"INBOXES": "Caixa de Entrada",
"AGENTS": "Agente",
"LABELS": "Nome do campo",
- "TEAMS": "Equipe"
+ "TEAMS": "Time"
},
"WITH": "com",
"METRICS": {
@@ -558,7 +559,8 @@
"SUMMARY_REPORTS": {
"INBOX": "Caixa de Entrada",
"AGENT": "Agente",
- "TEAM": "Equipe",
+ "TEAM": "Time",
+ "LABEL": "Nome do campo",
"AVG_RESOLUTION_TIME": "Tempo Médio de Resolução",
"AVG_FIRST_RESPONSE_TIME": "Tempo Médio de Primeira Resposta",
"AVG_REPLY_TIME": "Tempo Médio de Rspera do Cliente",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/search.json b/app/javascript/dashboard/i18n/locale/pt_BR/search.json
index 27ca80135..ff2905a82 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/search.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/search.json
@@ -4,12 +4,14 @@
"ALL": "Tudo",
"CONTACTS": "Contatos",
"CONVERSATIONS": "Conversas",
- "MESSAGES": "Mensagens"
+ "MESSAGES": "Mensagens",
+ "ARTICLES": "Artigos"
},
"SECTION": {
"CONTACTS": "Contatos",
"CONVERSATIONS": "Conversas",
- "MESSAGES": "Messagem"
+ "MESSAGES": "Messagem",
+ "ARTICLES": "Artigos"
},
"VIEW_MORE": "Ver mais",
"LOAD_MORE": "Carregar mais",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/settings.json b/app/javascript/dashboard/i18n/locale/pt_BR/settings.json
index 0048e8be2..b68c07359 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/settings.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Token de acesso",
"NOTE": "Esse token pode ser usado se você estiver criando uma integração baseada em API",
- "COPY": "Copiar"
+ "COPY": "Copiar",
+ "RESET": "Reiniciar",
+ "CONFIRM_RESET": "Você tem certeza?",
+ "CONFIRM_HINT": "Clique novamente para confirmar",
+ "RESET_SUCCESS": "Token de acesso gerado novamente com sucesso",
+ "RESET_ERROR": "Não foi possível regerar o token de acesso. Por favor, tente novamente"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Alertas de áudio",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Disponibilidade foi definida com sucesso",
- "SET_AVAILABILITY_ERROR": "Não foi possível definir a disponibilidade, por favor tente novamente"
+ "SET_AVAILABILITY_ERROR": "Não foi possível definir a disponibilidade, por favor tente novamente",
+ "IMPERSONATING_ERROR": "Não é possível alterar a disponibilidade enquanto personifica um usuário"
},
"EMAIL": {
"LABEL": "Seu e-mail",
@@ -231,7 +237,7 @@
"EMAIL_VERIFICATION_SENT": "O e-mail de verificação foi enviado. Por favor, verifique sua caixa de entrada.",
"ACCOUNT_SUSPENDED": {
"TITLE": "Conta Suspensa",
- "MESSAGE": "Sua conta está suspensa. Por favor, entre em contato com a equipe de suporte para mais informações."
+ "MESSAGE": "Sua conta está suspensa. Entre em contato com a equipe de suporte para obter mais informações."
}
},
"COMPONENTS": {
@@ -270,7 +276,7 @@
"NO_ITEMS": "Nenhum item",
"CURRENTLY_VIEWING_ACCOUNT": "Visualização atual:",
"SWITCH": "Trocar",
- "INBOX_VIEW": "",
+ "INBOX_VIEW": "Caixa de entrada",
"CONVERSATIONS": "Conversas",
"INBOX": "Caixa de Entrada",
"ALL_CONVERSATIONS": "Todas as conversas",
@@ -279,7 +285,8 @@
"UNATTENDED_CONVERSATIONS": "Não atendidas",
"REPORTS": "Relatórios",
"SETTINGS": "Configurações",
- "CONTACTS": "Contato",
+ "CONTACTS": "Contatos",
+ "ACTIVE": "Ativo",
"CAPTAIN": "Capitão",
"CAPTAIN_ASSISTANTS": "Assistentes",
"CAPTAIN_DOCUMENTS": "Documentos",
@@ -299,14 +306,14 @@
"CUSTOM_ATTRIBUTES": "Atributos Personalizados",
"AUTOMATION": "Automação",
"MACROS": "Macros",
- "TEAMS": "Equipes",
+ "TEAMS": "Times",
"BILLING": "Cobrança",
"CUSTOM_VIEWS_FOLDER": "Pastas",
"CUSTOM_VIEWS_SEGMENTS": "Segmentos",
"ALL_CONTACTS": "Todos os Contatos",
"TAGGED_WITH": "Marcado com",
"NEW_LABEL": "Nova etiqueta",
- "NEW_TEAM": "Nova equipe",
+ "NEW_TEAM": "Novo time",
"NEW_INBOX": "Nova caixa de entrada",
"REPORTS_CONVERSATION": "Conversas",
"CSAT": "CSAT",
@@ -320,7 +327,7 @@
"REPORTS_AGENT": "Agentes",
"REPORTS_LABEL": "Etiquetas",
"REPORTS_INBOX": "Caixa de Entrada",
- "REPORTS_TEAM": "Equipe",
+ "REPORTS_TEAM": "Time",
"SET_AVAILABILITY_TITLE": "Defina como",
"SET_YOUR_AVAILABILITY": "Disponibilidade",
"SLA": "SLA",
@@ -345,7 +352,7 @@
},
"BILLING_SETTINGS": {
"TITLE": "Cobrança",
- "DESCRIPTION": "Gerencie sua assinatura aqui, faça o upgrade do seu plano e obtenha mais para sua equipe.",
+ "DESCRIPTION": "Gerencie sua assinatura aqui, faça o upgrade do seu plano e obtenha mais para seu time.",
"CURRENT_PLAN": {
"TITLE": "Plano Atual",
"PLAN_NOTE": "Você está atualmente inscrito no plano **{plan}** com **{quantity}** licenças",
@@ -364,7 +371,7 @@
"BUTTON_TXT": "Comprar mais créditos",
"DOCUMENTS": "Documentos",
"RESPONSES": "Respostas",
- "UPGRADE": "O Captain não está disponível no plano gratuito, faça o upgrade para ter acesso aos assistentes, copilot e muito mais."
+ "UPGRADE": "O capitão não está disponível no plano gratuito, faça o upgrade para ter acesso aos assistentes, co-piloto e muito mais."
},
"CHAT_WITH_US": {
"TITLE": "Precisa de ajuda?",
@@ -387,7 +394,8 @@
"LABEL": "Nome da empresa",
"PLACEHOLDER": "Informe o nome da conta"
},
- "SUBMIT": "Enviar"
+ "SUBMIT": "Enviar",
+ "CANCEL": "Cancelar"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/sla.json b/app/javascript/dashboard/i18n/locale/pt_BR/sla.json
index 09d58a228..fae59d198 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/sla.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/sla.json
@@ -3,13 +3,13 @@
"HEADER": "Acordo de Nível de Serviço",
"ADD_ACTION": "Adicionar SLA",
"ADD_ACTION_LONG": "Criar uma nova Política de SLA",
- "DESCRIPTION": "Acordo de Nível de Serviço (SLAs em inglês) são acordos que definem expectativas claras entre sua equipe e os clientes. Estabelecem normas para tempos de resposta e de resolução, criando um quadro de responsabilização e garantindo uma experiência coerente e de qualidade.",
+ "DESCRIPTION": "Acordo de Nível de Serviço (SLAs em inglês) são acordos que definem expectativas claras entre seu time e os clientes. Estabelecem normas para tempos de resposta e de resolução, criando um quadro de responsabilização e garantindo uma experiência coerente e de qualidade.",
"LEARN_MORE": "Saiba mais sobre SLA",
"LOADING": "Buscando SLAs",
"PAYWALL": {
"TITLE": "Atualize para criar SLAs",
"AVAILABLE_ON": "O recurso SLA está disponível apenas nos planos Business e Enterprise.",
- "UPGRADE_PROMPT": "Atualize seu plano para obter acesso a recursos avançados como gerenciamento de equipe, automações, atributos personalizados e muito mais.",
+ "UPGRADE_PROMPT": "Atualize seu plano para obter acesso a recursos avançados como gerenciamento de time, automações, atributos personalizados e muito mais.",
"UPGRADE_NOW": "Atualizar agora",
"CANCEL_ANYTIME": "Você pode alterar ou cancelar seu plano a qualquer momento"
},
@@ -49,7 +49,7 @@
},
"DESCRIPTION": {
"LABEL": "Descrição",
- "PLACEHOLDER": ""
+ "PLACEHOLDER": "SLA para clientes premium"
},
"FIRST_RESPONSE_TIME": {
"LABEL": "Tempo de Primeira Resposta",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/teamsSettings.json b/app/javascript/dashboard/i18n/locale/pt_BR/teamsSettings.json
index b8a8e8a25..325c835a6 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/teamsSettings.json
@@ -1,32 +1,32 @@
{
"TEAMS_SETTINGS": {
- "NEW_TEAM": "Criar nova equipe",
- "HEADER": "Equipes",
- "LOADING": "Buscando equipes",
- "DESCRIPTION": "As equipes permitem que você organize agentes em grupos com base em suas responsabilidades. Um agente pode pertencer a várias equipes. Ao trabalhar de forma colaborativa, você pode atribuir conversas a equipes específicas.",
- "LEARN_MORE": "Saiba mais sobre equipes",
+ "NEW_TEAM": "Criar novo time",
+ "HEADER": "Times",
+ "LOADING": "Buscando times",
+ "DESCRIPTION": "Os times permitem que você organize agentes em grupos com base em suas responsabilidades. Um agente pode pertencer a vários times. Ao trabalhar de forma colaborativa, você pode atribuir conversas a times específicos.",
+ "LEARN_MORE": "Saiba mais sobre times",
"LIST": {
"404": "Não existem agentes associados a esta conta.",
- "EDIT_TEAM": "Editar equipe",
+ "EDIT_TEAM": "Editar time",
"NONE": "Nenhuma"
},
"CREATE_FLOW": {
"CREATE": {
- "TITLE": "Criar nova equipe",
- "DESC": "Adicione um título e uma descrição à sua nova equipe."
+ "TITLE": "Criar novo time",
+ "DESC": "Adicione um título e uma descrição a seu novo time."
},
"AGENTS": {
- "BUTTON_TEXT": "Adicionar agente à sua equipe",
- "TITLE": "Adicionar agentes a equipe: {teamName}",
- "DESC": "Adicione agentes à sua equipe recém-criada. Isso permite que você colabore como uma equipe em conversas, seja notificado sobre novos eventos na mesma conversa."
+ "BUTTON_TEXT": "Adicionar agente a seu time",
+ "TITLE": "Adicionar agentes ao time: {teamName}",
+ "DESC": "Adicione agentes a seu time recém-criado. Isso permite que você colabore como um time em conversas, seja notificado sobre novos eventos na mesma conversa."
},
"WIZARD_CREATE": {
"TITLE": "Criar",
- "BODY": "Criar uma nova equipe de agentes."
+ "BODY": "Criar um novo time de agentes."
},
"WIZARD_ADD_AGENTS": {
"TITLE": "Adicionar Agentes",
- "BODY": "Adicionar agentes a equipe."
+ "BODY": "Adicionar agentes ao time."
},
"WIZARD_FINISH": {
"TITLE": "Finalizar",
@@ -35,33 +35,33 @@
},
"EDIT_FLOW": {
"CREATE": {
- "TITLE": "Editar detalhes da sua equipe",
- "DESC": "Edite o título e a descrição da sua equipe.",
- "BUTTON_TEXT": "Atualizar equipe"
+ "TITLE": "Editar detalhes da seu time",
+ "DESC": "Edite o título e a descrição de seu time.",
+ "BUTTON_TEXT": "Atualizar time"
},
"AGENTS": {
- "BUTTON_TEXT": "Atualizar agentes na equipe",
- "TITLE": "Adicionar agentes a equipe: {teamName}",
- "DESC": "Adicionar agentes à sua equipe recém-criada. Todos os agentes adicionados serão notificados quando uma conversa for atribuída a esta equipe."
+ "BUTTON_TEXT": "Atualizar agentes no time",
+ "TITLE": "Adicionar agentes ao time: {teamName}",
+ "DESC": "Adicionar agentes ao seu time recém-criado. Todos os agentes adicionados serão notificados quando uma conversa for atribuída a este time."
},
"EDIT_WIZARD_DETAILS": {
- "TITLE": "Detalhes da equipe",
- "ROUTE": "ajustes_equipes_editar",
+ "TITLE": "Detalhes do time",
+ "ROUTE": "ajustes_times_editar",
"BODY": "Alterar nome, descrição e outros detalhes."
},
"EDIT_WIZARD_AGENTS": {
"TITLE": "Alterar agentes",
- "ROUTE": "ajustes_equipes_editar_membros",
- "BODY": "Gerenciar agentes da sua equipe"
+ "ROUTE": "ajustes_times_editar_membros",
+ "BODY": "Gerenciar agentes do seu time."
},
"EDIT_WIZARD_FINISH": {
"TITLE": "Finalizar",
- "ROUTE": "ajustes_equipes_editar_finalizar",
+ "ROUTE": "ajustes_times_editar_finalizar",
"BODY": "Está tudo pronto para começar!"
}
},
"TEAM_FORM": {
- "ERROR_MESSAGE": "Não foi possível salvar os detalhes da equipe. Tente novamente."
+ "ERROR_MESSAGE": "Não foi possível salvar os detalhes do time. Tente novamente."
},
"AGENTS": {
"AGENT": "AGENTE",
@@ -73,8 +73,8 @@
"SELECTED_COUNT": "{selected} de {total} agentes selecionados."
},
"ADD": {
- "TITLE": "Adicionar agentes a equipe: {teamName}",
- "DESC": "Adicione agentes à sua equipe recém-criada. Isso permite que você colabore como uma equipe em conversas, seja notificado sobre novos eventos na mesma conversa.",
+ "TITLE": "Adicionar agentes ao time: {teamName}",
+ "DESC": "Adicione agentes ao time recém-criado. Isso permite que você colabore como um time em conversas, seja notificado sobre novos eventos na mesma conversa.",
"SELECT": "Selecionar",
"SELECT_ALL": "Selecionar todos os agentes",
"SELECTED_COUNT": "{selected} de {total} agentes selecionados.",
@@ -83,39 +83,39 @@
},
"FINISH": {
"TITLE": "Sua caixa de entrada está pronta!",
- "MESSAGE": "Agora você pode colaborar como equipe em conversas",
+ "MESSAGE": "Agora você pode colaborar como um time em conversas",
"BUTTON_TEXT": "Finalizar"
},
"DELETE": {
"BUTTON_TEXT": "Excluir",
"API": {
"SUCCESS_MESSAGE": "Agente excluído com sucesso.",
- "ERROR_MESSAGE": "Não foi possível excluir a equipe. Tente novamente."
+ "ERROR_MESSAGE": "Não foi possível excluir o time. Tente novamente."
},
"CONFIRM": {
- "TITLE": "Tem certeza de que deseja excluir a equipe?",
+ "TITLE": "Tem certeza de que deseja excluir o time?",
"PLACE_HOLDER": "Digite {teamName} para confirmar",
- "MESSAGE": "A exclusão do departamento irá remover a atribuição da equipe das conversas atribuídas a esse departamento.",
+ "MESSAGE": "A exclusão do time irá remover a atribuição do time das conversas atribuídas a esse time.",
"YES": "Excluir ",
"NO": "Cancelar"
}
},
"SETTINGS": "Configurações",
"FORM": {
- "UPDATE": "Atualizar equipe",
- "CREATE": "Criar nova equipe",
+ "UPDATE": "Atualizar time",
+ "CREATE": "Criar novo time",
"NAME": {
- "LABEL": "Nome da equipe",
+ "LABEL": "Nome do Time",
"PLACEHOLDER": "Exemplo: Vendas, Suporte ao Cliente"
},
"DESCRIPTION": {
- "LABEL": "Descrição da equipe",
- "PLACEHOLDER": "Breve descrição sobre esta equipe."
+ "LABEL": "Descrição do time",
+ "PLACEHOLDER": "Breve descrição sobre este time."
},
"AUTO_ASSIGN": {
- "LABEL": "Permitir atribuição automática para este departamento."
+ "LABEL": "Permitir atribuição automática para este time."
},
- "SUBMIT_CREATE": "Criar nova equipe"
+ "SUBMIT_CREATE": "Criar novo time"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ro/agentBots.json b/app/javascript/dashboard/i18n/locale/ro/agentBots.json
index a2c2bc9be..02c271f25 100644
--- a/app/javascript/dashboard/i18n/locale/ro/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ro/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Boți",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Numele botului este necesar."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "Ce face acest bot?"
- },
- "BOT_CONFIG": {
- "ERROR": "Vă rugăm să introduceți configurația bot CSML de mai sus.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validați și salvați"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "Sistem",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Selectați un bot de agent",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configurați un bot nou",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Renunță",
"API": {
"SUCCESS_MESSAGE": "Bot adăugat cu succes.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "URL Webhook"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Şterge",
"TITLE": "Delete bot",
- "SUBMIT": "Şterge",
- "CANCEL_BUTTON_TEXT": "Renunță",
- "DESCRIPTION": "Sunteți sigur că doriți să ștergeți acest bot? Această acțiune este ireversibilă.",
+ "CONFIRM": {
+ "TITLE": "Confirmă ștergerea",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Da, șterge",
+ "NO": "Nu, păstreaza"
+ },
"API": {
"SUCCESS_MESSAGE": "Agent sters cu succes.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Editare",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Renunță",
"API": {
"SUCCESS_MESSAGE": "Bot actualizat cu succes.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Token acces",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Numele botului este necesar"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descriere",
+ "PLACEHOLDER": "Ce face acest bot?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "URL Webhook",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Numele botului este necesar",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Renunță",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ro/auditLogs.json b/app/javascript/dashboard/i18n/locale/ro/auditLogs.json
index ecd4a0eee..50f88d13b 100644
--- a/app/javascript/dashboard/i18n/locale/ro/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ro/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ro/automation.json b/app/javascript/dashboard/i18n/locale/ro/automation.json
index 2dc94259a..fee029fc5 100644
--- a/app/javascript/dashboard/i18n/locale/ro/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ro/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Nimic"
+ "NONE_OPTION": "Nimic",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversație creată",
+ "CONVERSATION_UPDATED": "Conversație actualizată",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Silențios conversația",
+ "SNOOZE_CONVERSATION": "Snooze conversație",
+ "RESOLVE_CONVERSATION": "Detalii conversație",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Modificarea priorității",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "E-mail",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Număr de telefon",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Limba browserului",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Țară",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Echipa",
+ "PRIORITY": "Prioritate"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ro/components.json b/app/javascript/dashboard/i18n/locale/ro/components.json
index 03d4a2391..5be9ed8ab 100644
--- a/app/javascript/dashboard/i18n/locale/ro/components.json
+++ b/app/javascript/dashboard/i18n/locale/ro/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Află mai mult",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ro/contact.json b/app/javascript/dashboard/i18n/locale/ro/contact.json
index 977e58210..747ada0d3 100644
--- a/app/javascript/dashboard/i18n/locale/ro/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ro/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacte",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Mesaj",
"SEND_MESSAGE": "Trimite mesaj",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Șterge contact",
"DELETE_DIALOG": {
"TITLE": "Confirmă ștergerea",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Da, șterge",
"API": {
"SUCCESS_MESSAGE": "Contact șters cu succes",
@@ -544,6 +549,9 @@
"WROTE": "scrisese",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Niciun contact nu se potrivește cu căutarea ta 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ro/conversation.json b/app/javascript/dashboard/i18n/locale/ro/conversation.json
index 63458b4e3..4cc8d43c9 100644
--- a/app/javascript/dashboard/i18n/locale/ro/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ro/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Încărcare conversații",
"CANNOT_REPLY": "Nu poți răspunde din cauza",
"24_HOURS_WINDOW": "Restricţie fereastră mesaj 24 de ore",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Această conversație nu vă este atribuită. Doriți să vă atribuiți această conversație?",
"ASSIGN_TO_ME": "Atribuie-mi",
"TWILIO_WHATSAPP_CAN_REPLY": "Poți răspunde la această conversație doar folosind un mesaj șablon datorat",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Restricţie fereastră mesaj 24 de ore",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Răspundeți la:",
"REMOVE_SELECTION": "Elimină selecția",
"DOWNLOAD": "Descărcare",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Rezolvă",
"REOPEN_ACTION": "Redeschide",
"OPEN_ACTION": "Deschide",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Mai mult",
"CLOSE": "Închide",
"DETAILS": "detalii",
@@ -115,6 +118,11 @@
"FAILED": "Nu s-a putut schimba prioritatea. Vă rugăm să încercați din nou."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Şterge"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Marchează ca în așteptare",
"RESOLVED": "Marcați ca rezolvat",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Atribuiți eticheta",
"AGENTS_LOADING": "Se încarcă agenții...",
"ASSIGN_TEAM": "Atribuiți echipă",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Id conversație {conversationId} atribuit la \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Etichetă atribuită cu succes",
"ASSIGN_LABEL_FAILED": "Atribuirea etichetei a eșuat",
"CHANGE_TEAM": "Echipa de conversație schimbată",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Fișierul depășește limita de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
"MESSAGE_ERROR": "Mesajul nu poate fi trimis, te rugăm să încerci din nou mai târziu",
"SENT_BY": "Trimis de:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Acțiuni de conversație",
"CONVERSATION_LABELS": "Etichete conversație",
"CONVERSATION_INFO": "Informații despre conversație",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Atribute Contacte",
"PREVIOUS_CONVERSATION": "Conversații anterioare",
"MACROS": "Macrocomenzi",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ro/general.json b/app/javascript/dashboard/i18n/locale/ro/general.json
index 49c0fc566..00beef63f 100644
--- a/app/javascript/dashboard/i18n/locale/ro/general.json
+++ b/app/javascript/dashboard/i18n/locale/ro/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Caută",
"EMPTY_STATE": "Niciun rezultat găsit"
- }
+ },
+ "CLOSE": "Închide"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ro/generalSettings.json b/app/javascript/dashboard/i18n/locale/ro/generalSettings.json
index 00877baa4..01d4d0292 100644
--- a/app/javascript/dashboard/i18n/locale/ro/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ro/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Setări cont",
"SUBMIT": "Actualizați setările",
"BACK": "Înapoi",
@@ -8,6 +14,26 @@
"ERROR": "Nu s-au putut actualiza setările, încercați din nou!",
"SUCCESS": "Setările contului actualizate cu succes"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Şterge",
+ "DISMISS": "Renunță",
+ "PLACE_HOLDER": "Vă rugăm să tastați {accountName} pentru a confirma"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Vă rugăm să remediați erorile din formular",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID cont",
"NOTE": "Acest ID este necesar dacă construiți o integrare bazată pe API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferințe",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Nume cont",
"PLACEHOLDER": "Numele contului tău",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "E-mailul de asistență al companiei dumneavoastră",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Numărul de zile de pe bilet ar trebui să se rezolve automat dacă nu există activitate",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Vă rugăm să introduceți o durată validă de rezolvare automată (minim 1 zi și maximum 999 de zile)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Actualizare",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Continuitatea conversației cu e-mailurile este activată pentru contul dvs.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Este disponibilă o actualizare {latestChatwootVersion} pentru Chatwoot. Vă rugăm să actualizați instanța.",
"LEARN_MORE": "Află mai mult",
"PAYMENT_PENDING": "Plata dvs. este în așteptare. Vă rugăm să actualizați informațiile de plată pentru a continua să utilizați Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Contul dvs. a depășit limitele de utilizare, vă rugăm să vă actualizați planul pentru a continua să utilizați Chatwoot",
"OPEN_BILLING": "Deschide facturarea"
},
diff --git a/app/javascript/dashboard/i18n/locale/ro/helpCenter.json b/app/javascript/dashboard/i18n/locale/ro/helpCenter.json
index 5ee77e1be..b6f45a8eb 100644
--- a/app/javascript/dashboard/i18n/locale/ro/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ro/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug-ul este obligatoriu"
+ "ERROR": "Slug-ul este obligatoriu",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json
index 0d1d277da..72e5469f7 100644
--- a/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ro/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Nume Inbox",
"ADD_NAME": "Adaugă un nume pentru inbox-ul tău",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Alege o valoare"
+ "PICK_A_VALUE": "Alege o valoare",
+ "CREATE_INBOX": "Crează căsuța"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Pentru a vă adăuga profilul de Twitter ca si canal, trebuie să vă autentificați profilul de Twitter făcând clic pe \"Conectați-vă cu Twitter\" ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Formular pre chat",
"BUSINESS_HOURS": "Program de lucru",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Configurarea botului"
+ "BOT_CONFIGURATION": "Configurarea botului",
+ "CSAT": "CSAT"
},
"SETTINGS": "Setări",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Caseta Activare colectare e-mail",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Caseta Activarea sau dezactivarea colectării e-mailurilor în conversația nouă",
"AUTO_ASSIGNMENT": "Activare atribuire automată",
- "ENABLE_CSAT": "Activați CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Activați/dezactivați sondajul CSAT (Satisfacția clienților) după rezolvarea unei conversații",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Activați continuitatea conversației prin e-mail",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversațiile vor continua prin e-mail dacă adresa de e-mail de contact este disponibilă.",
@@ -568,6 +577,32 @@
"LABEL": "Vizitatorii ar trebui să furnizeze numele și adresa lor de e-mail înainte de a începe chat-ul"
}
},
+ "CSAT": {
+ "TITLE": "Activați CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Mesaj",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "conține",
+ "DOES_NOT_CONTAINS": "nu conține"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Setați-vă disponibilitatea",
"SUBTITLE": "Setați-vă disponibilitatea pe widget-ul livechat",
@@ -753,7 +788,8 @@
"EMAIL": "E-mail",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "Canal API"
+ "API": "Canal API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ro/integrations.json b/app/javascript/dashboard/i18n/locale/ro/integrations.json
index dfe87540c..ac6dee5c7 100644
--- a/app/javascript/dashboard/i18n/locale/ro/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ro/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Mesaj actualizat",
"WEBWIDGET_TRIGGERED": "Widget de chat live deschis de utilizator",
"CONTACT_CREATED": "Persoană de contact creată",
- "CONTACT_UPDATED": "Persoană de contact actualizată"
+ "CONTACT_UPDATED": "Persoană de contact actualizată",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Renunță"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Trimite mesaj...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Scrie mesajul tău...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Actualizare",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Caracteristici",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Nume",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Descriere",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Caracteristici",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/ro/macros.json b/app/javascript/dashboard/i18n/locale/ro/macros.json
index 6a44ee68a..79a414fdc 100644
--- a/app/javascript/dashboard/i18n/locale/ro/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ro/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Silențios conversația",
+ "SNOOZE_CONVERSATION": "Snooze conversație",
+ "RESOLVE_CONVERSATION": "Detalii conversație",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Modificarea priorității",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ro/report.json b/app/javascript/dashboard/i18n/locale/ro/report.json
index fdb722efc..ab4c386af 100644
--- a/app/javascript/dashboard/i18n/locale/ro/report.json
+++ b/app/javascript/dashboard/i18n/locale/ro/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Prezentare generală a etichetelor",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Încărcare date grafic...",
"NO_ENOUGH_DATA": "Nu am primit suficiente date pentru a genera raportul. Vă rugăm să încercați din nou mai târziu.",
"DOWNLOAD_LABEL_REPORTS": "Descărcarea rapoartelor de etichete",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Echipa",
+ "LABEL": "Etichetă",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/ro/search.json b/app/javascript/dashboard/i18n/locale/ro/search.json
index 867722640..e2e0c3f09 100644
--- a/app/javascript/dashboard/i18n/locale/ro/search.json
+++ b/app/javascript/dashboard/i18n/locale/ro/search.json
@@ -4,12 +4,14 @@
"ALL": "Toate",
"CONTACTS": "Contacte",
"CONVERSATIONS": "Conversații",
- "MESSAGES": "Mesaje"
+ "MESSAGES": "Mesaje",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacte",
"CONVERSATIONS": "Conversații",
- "MESSAGES": "Mesaje"
+ "MESSAGES": "Mesaje",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/ro/settings.json b/app/javascript/dashboard/i18n/locale/ro/settings.json
index b2a74007b..e44f55c45 100644
--- a/app/javascript/dashboard/i18n/locale/ro/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ro/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Token acces",
"NOTE": "Acest token poate fi utilizat dacă construiți o integrare bazată pe API",
- "COPY": "Copiază"
+ "COPY": "Copiază",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Deconectat"
},
"SET_AVAILABILITY_SUCCESS": "Avatar a fost șters cu succes",
- "SET_AVAILABILITY_ERROR": "Nu s-a putut seta disponibilitatea, vă rugăm să încercați din nou"
+ "SET_AVAILABILITY_ERROR": "Nu s-a putut seta disponibilitatea, vă rugăm să încercați din nou",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Adresa ta de email",
@@ -280,6 +286,7 @@
"REPORTS": "Rapoarte",
"SETTINGS": "Setări",
"CONTACTS": "Contacte",
+ "ACTIVE": "Activ",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Nume companie",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Trimite"
+ "SUBMIT": "Trimite",
+ "CANCEL": "Renunță"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ru/agentBots.json b/app/javascript/dashboard/i18n/locale/ru/agentBots.json
index ded38e457..5bd76e24c 100644
--- a/app/javascript/dashboard/i18n/locale/ru/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ru/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Боты",
"LOADING_EDITOR": "Загрузка редактора...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Имя бота",
- "PLACEHOLDER": "Назовите вашего бота.",
- "ERROR": "Имя бота обязательно."
- },
- "DESCRIPTION": {
- "LABEL": "Описание бота",
- "PLACEHOLDER": "Что делает этот бот?"
- },
- "BOT_CONFIG": {
- "ERROR": "Пожалуйста, введите вашу конфигурацию бота CSML.",
- "API_ERROR": "Ваша CSML конфигурация неверна. Пожалуйста, исправьте её и повторите попытку."
- },
- "SUBMIT": "Проверить и сохранить"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "Система",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Выберите бота агента",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Выбрать бота"
},
"ADD": {
- "TITLE": "Настроить нового бота",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Отменить",
"API": {
"SUCCESS_MESSAGE": "Бот успешно добавлен.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Бот не найден. Вы можете создать бота, нажав кнопку 'Настроить нового бота' ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Получение ботов...",
- "TYPE": "Тип бота"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "URL вебхука"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Удалить",
"TITLE": "Удалить бота",
- "SUBMIT": "Удалить",
- "CANCEL_BUTTON_TEXT": "Отменить",
- "DESCRIPTION": "Вы уверены, что хотите удалить этого бота? Это действие необратимо.",
+ "CONFIRM": {
+ "TITLE": "Подтвердите удаление",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Да, удалить",
+ "NO": "Нет, не удалять"
+ },
"API": {
"SUCCESS_MESSAGE": "Бот успешно удален.",
"ERROR_MESSAGE": "Не удалось удалить бота. Пожалуйста, повторите попытку позже."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Редактировать",
- "LOADING": "Получение ботов...",
"TITLE": "Редактировать бота",
- "CANCEL_BUTTON_TEXT": "Отменить",
"API": {
"SUCCESS_MESSAGE": "Бот успешно обновлен.",
"ERROR_MESSAGE": "Не удалось обновить бота. Пожалуйста, повторите попытку позже."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Токен доступа",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Имя бота",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Имя бота обязательно"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Описание",
+ "PLACEHOLDER": "Что делает этот бот?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "URL вебхука",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Имя бота обязательно",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Отменить",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook бот",
- "CSML": "CSML бот"
+ "WEBHOOK": "Webhook бот"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/auditLogs.json b/app/javascript/dashboard/i18n/locale/ru/auditLogs.json
index b6bf2a6be..921a7f10a 100644
--- a/app/javascript/dashboard/i18n/locale/ru/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ru/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} обновил настройки учетной записи (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/automation.json b/app/javascript/dashboard/i18n/locale/ru/automation.json
index edd0ce8f1..87a67ef2e 100644
--- a/app/javascript/dashboard/i18n/locale/ru/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ru/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "Требуется хотя бы одно условие",
"ATLEAST_ONE_ACTION_REQUIRED": "Требуется хотя бы одно действие"
},
- "NONE_OPTION": "Ничего"
+ "NONE_OPTION": "Ничего",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Диалог создан",
+ "CONVERSATION_UPDATED": "Диалог обновлён",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Заглушить диалог",
+ "SNOOZE_CONVERSATION": "Включить звук диалога",
+ "RESOLVE_CONVERSATION": "Решить диалог",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Изменить приоритет",
+ "ADD_SLA": "Добавить SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Электронная почта",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Номер телефона",
+ "STATUS": "Статус",
+ "BROWSER_LANGUAGE": "Язык браузера",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Страна",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Назначено",
+ "TEAM_NAME": "Команда",
+ "PRIORITY": "Приоритет"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/components.json b/app/javascript/dashboard/i18n/locale/ru/components.json
index 3e3cb1aad..92890e3e0 100644
--- a/app/javascript/dashboard/i18n/locale/ru/components.json
+++ b/app/javascript/dashboard/i18n/locale/ru/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Узнайте больше",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/contact.json b/app/javascript/dashboard/i18n/locale/ru/contact.json
index 4ca38251f..dcc5aeed1 100644
--- a/app/javascript/dashboard/i18n/locale/ru/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ru/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Контакты",
"SEARCH_TITLE": "Поиск контактов",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Поиск...",
"MESSAGE_BUTTON": "Сообщение",
"SEND_MESSAGE": "Отправить сообщение",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Добавить Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Удалить контакт",
"DELETE_DIALOG": {
"TITLE": "Подтвердите удаление",
- "DESCRIPTION": "Вы уверены, что хотите удалить этот контакт {contactName}?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Да, удалить",
"API": {
"SUCCESS_MESSAGE": "Кампания успешно удалена",
@@ -544,6 +549,9 @@
"WROTE": "написал",
"YOU": "Вы",
"SAVE": "Сохранить заметку",
+ "EXPAND": "Развернуть",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "Нет заметок, связанных с этим контактом. Вы можете добавить заметку в поле выше."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Начните добавлять новые контакты, нажав на кнопку ниже",
"BUTTON_LABEL": "Добавить контакт",
"SEARCH_EMPTY_STATE_TITLE": "Нет контактов по вашему запросу 🔍",
- "LIST_EMPTY_STATE_TITLE": "Нет контактов в этом виде 📋"
+ "LIST_EMPTY_STATE_TITLE": "Нет контактов в этом виде 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ru/conversation.json b/app/javascript/dashboard/i18n/locale/ru/conversation.json
index 8dd202e1b..ffc9b90c9 100644
--- a/app/javascript/dashboard/i18n/locale/ru/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ru/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Загрузка диалогов",
"CANNOT_REPLY": "Вы не можете ответить из-за",
"24_HOURS_WINDOW": "Ограничение на 24 часа",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Этот диалог вам не назначен. Вы хотите назначить этот диалог себе?",
"ASSIGN_TO_ME": "Назначить мне",
"TWILIO_WHATSAPP_CAN_REPLY": "Вы можете ответить в этой беседе только с помощью шаблона сообщения",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Ограничение на 24 часа",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Вы отвечаете на:",
"REMOVE_SELECTION": "Удалить выделенное",
"DOWNLOAD": "Скачать",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Завершить",
"REOPEN_ACTION": "Открыть заново",
"OPEN_ACTION": "Открыть",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Открыть",
"CLOSE": "Закрыть",
"DETAILS": "подробности",
@@ -115,6 +118,11 @@
"FAILED": "Не удалось изменить приоритет. Пожалуйста, попробуйте еще раз."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Удалить"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Отметить как ожидающие",
"RESOLVED": "Пометить как разрешено",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Назначить метки",
"AGENTS_LOADING": "Загрузка агентов...",
"ASSIGN_TEAM": "Назначить команду",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "ID разговора {conversationId} присвоен \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Метка успешно назначена",
"ASSIGN_LABEL_FAILED": "Назначение метки не удалось",
"CHANGE_TEAM": "Команда назначенная в беседу изменена",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Превышен лимит вложений в {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
"MESSAGE_ERROR": "Не удается отправить это сообщение, повторите попытку позже",
"SENT_BY": "Отправитель:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Действия в беседе",
"CONVERSATION_LABELS": "Категории Диалога",
"CONVERSATION_INFO": "Информация о беседе",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Атрибуты контакта",
"PREVIOUS_CONVERSATION": "Предыдущие диалоги",
"MACROS": "Макросс",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ru/general.json b/app/javascript/dashboard/i18n/locale/ru/general.json
index 6191f3cfb..8a893c354 100644
--- a/app/javascript/dashboard/i18n/locale/ru/general.json
+++ b/app/javascript/dashboard/i18n/locale/ru/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Поиск",
"EMPTY_STATE": "Результаты не найдены"
- }
+ },
+ "CLOSE": "Закрыть"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/generalSettings.json b/app/javascript/dashboard/i18n/locale/ru/generalSettings.json
index 798f17914..b46d06a9d 100644
--- a/app/javascript/dashboard/i18n/locale/ru/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ru/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Настройки аккаунта",
"SUBMIT": "Изменить настройки",
"BACK": "Назад",
@@ -8,6 +14,26 @@
"ERROR": "Не удалось обновить настройки, попробуйте снова!",
"SUCCESS": "Настройки аккаунта обновлены"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Удалить",
+ "DISMISS": "Отменить",
+ "PLACE_HOLDER": "Пожалуйста, введите {accountName} для подтверждения"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Пожалуйста исправьте ошибки",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID аккаунта",
"NOTE": "Этот ID требуется для построения интеграции, основанной на API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Настройки",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Имя аккаунта",
"PLACEHOLDER": "Имя вашего аккаунта",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Email службы поддержки вашей компании",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Количество дней после того, как тикет будет автоматически решен, если нет активности",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Введите корректную длительность для автозавершения диалога (минимум 1 день, максимум 999)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Обновить",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Для вашего аккаунта включено продолжение диалогов по электронной почте.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Доступно обновление {latestChatwootVersion} для Chatwoot. Пожалуйста, обновите свою версию.",
"LEARN_MORE": "Узнайте больше",
"PAYMENT_PENDING": "Ваш платеж в ожидании. Пожалуйста, обновите платежную информацию, чтобы продолжить использовать Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Превышен лимит использования вашего тарифного плана, пожалуйста, обновите тарифный план, чтобы продолжить использовать Chatwoot",
"OPEN_BILLING": "Открыть платеж"
},
diff --git a/app/javascript/dashboard/i18n/locale/ru/helpCenter.json b/app/javascript/dashboard/i18n/locale/ru/helpCenter.json
index cfc0158e0..4f9002b9a 100644
--- a/app/javascript/dashboard/i18n/locale/ru/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ru/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Метка",
"PLACEHOLDER": "руководство пользователя",
- "ERROR": "Необходимо указать метку"
+ "ERROR": "Необходимо указать метку",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json
index 695c97380..e63b6f407 100644
--- a/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ru/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Имя источника",
"ADD_NAME": "Введите имя источника",
"PICK_NAME": "Выберите имя для папки \"Входящие\"",
- "PICK_A_VALUE": "Выберите значение"
+ "PICK_A_VALUE": "Выберите значение",
+ "CREATE_INBOX": "Создать источник"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Чтобы добавить свой Twitter профиль в качестве источника, вам нужно авторизоваться при помощи входа через Twitter ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Форма, показываемая перед стартом диалога",
"BUSINESS_HOURS": "Время работы",
"WIDGET_BUILDER": "Конструктор виджетов",
- "BOT_CONFIGURATION": "Конфигурация бота"
+ "BOT_CONFIGURATION": "Конфигурация бота",
+ "CSAT": "CSAT"
},
"SETTINGS": "Настройки",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Включить ящик сбора почты",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Включение или отключение ящик для сбора почты в новой беседе",
"AUTO_ASSIGNMENT": "Включить автоназначение",
- "ENABLE_CSAT": "Включить CSAT",
"SENDER_NAME_SECTION": "Включить имя агента в электронной почте",
- "ENABLE_CSAT_SUB_TEXT": "Включить/выключить опрос CSAT(степень удовлетворенности пользователя) после завершения беседы",
"SENDER_NAME_SECTION_TEXT": "Включить/выключить отображение имени Сотрудника в электронной почте, если отключено, он будет показывать бизнес-имя",
"ENABLE_CONTINUITY_VIA_EMAIL": "Включить непрерывность диалогов по электронной почте",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Диалоги будут продолжаться по электронной почте, если доступен контактный адрес электронной почты.",
@@ -568,6 +577,32 @@
"LABEL": "Посетители должны указать свое имя и адрес электронной почты перед началом общения"
}
},
+ "CSAT": {
+ "TITLE": "Включить CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Сообщение",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "содержит",
+ "DOES_NOT_CONTAINS": "не содержит"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Настройте ваши рабочие часы",
"SUBTITLE": "Настройте ваши рабочие часы для общения через виджет на сайте",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "Источник API"
+ "API": "Источник API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/integrations.json b/app/javascript/dashboard/i18n/locale/ru/integrations.json
index c9e1b8572..cee7df308 100644
--- a/app/javascript/dashboard/i18n/locale/ru/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ru/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Сообщение обновлено",
"WEBWIDGET_TRIGGERED": "Виджет онлайн чата, открыт пользователем",
"CONTACT_CREATED": "Контакт создан",
- "CONTACT_UPDATED": "Контакт обновлен"
+ "CONTACT_UPDATED": "Контакт обновлен",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Задача успешно отвязана",
"ERROR": "Произошла ошибка при отвязке задачи, пожалуйста, попробуйте ещё раз"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Вы уверены, что хотите удалить интеграцию?",
"MESSAGE": "Вы уверены, что хотите удалить интеграцию?",
"CONFIRM": "Да, удалить",
"CANCEL": "Отменить"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Капитан",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Попробуйте эти запросы",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Отправить сообщение...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Капитан думает",
"YOU": "Вы",
"USE": "Использовать это",
"RESET": "Сброс",
- "SELECT_ASSISTANT": "Выбрать ассистента"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Выбрать ассистента",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Вы",
+ "ASSISTANT": "Ассистент",
+ "MESSAGE_PLACEHOLDER": "Введите сообщение...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Обновите тарифный план, чтобы использовать Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "Вы можете изменить или отменить ваш тарифный план в любое время"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Функция Captain AI доступна только в платном плане.",
"UPGRADE_PROMPT": "Обновите тарифный план, чтобы получить доступ к нашим ассистентам, copilot и другим функциям.",
"ASK_ADMIN": "Пожалуйста, обратитесь к вашему администратору для обновления."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Ассистенты",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Создать нового ассистента",
"DELETE": {
"TITLE": "Вы уверены, что хотите удалить ассистента?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "При создании ассистента произошла ошибка, пожалуйста, попробуйте еще раз."
},
"FORM": {
+ "UPDATE": "Обновить",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Возможности",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Имя ассистента",
- "PLACEHOLDER": "Введите имя ассистента",
- "ERROR": "Пожалуйста, укажите имя ассистента"
+ "LABEL": "Имя",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Описание ассистента",
- "PLACEHOLDER": "Опишите, как и где будет использоваться этот ассистент",
- "ERROR": "Необходимо описание"
+ "LABEL": "Описание",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Название продукта",
- "PLACEHOLDER": "Введите название продукта, для которого предназначен этот ассистент",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "Требуется название продукта"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Возможности",
"ALLOW_CONVERSATION_FAQS": "Создать FAQ из решённых диалогов",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Обновить ассистента",
"SUCCESS_MESSAGE": "Ассистент успешно обновлен",
- "ERROR_MESSAGE": "При обновлении ассистента произошла ошибка, пожалуйста, попробуйте еще раз."
+ "ERROR_MESSAGE": "При обновлении ассистента произошла ошибка, пожалуйста, попробуйте еще раз.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Редактировать ассистента",
diff --git a/app/javascript/dashboard/i18n/locale/ru/macros.json b/app/javascript/dashboard/i18n/locale/ru/macros.json
index e9f388ef0..69411fd10 100644
--- a/app/javascript/dashboard/i18n/locale/ru/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ru/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Требуются параметры действий",
"ATLEAST_ONE_CONDITION_REQUIRED": "Требуется хотя бы одно условие",
"ATLEAST_ONE_ACTION_REQUIRED": "Требуется хотя бы одно действие"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Заглушить диалог",
+ "SNOOZE_CONVERSATION": "Включить звук диалога",
+ "RESOLVE_CONVERSATION": "Решить диалог",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Изменить приоритет",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ru/report.json b/app/javascript/dashboard/i18n/locale/ru/report.json
index 42802e962..dfcef0a5a 100644
--- a/app/javascript/dashboard/i18n/locale/ru/report.json
+++ b/app/javascript/dashboard/i18n/locale/ru/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Обзор меток",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Загрузка данных графика...",
"NO_ENOUGH_DATA": "Недостаточно данных для создания отчета, пожалуйста, повторите попытку позже.",
"DOWNLOAD_LABEL_REPORTS": "Скачать отчет по меткам",
@@ -559,6 +560,7 @@
"INBOX": "Электронная почта",
"AGENT": "Оператор",
"TEAM": "Команда",
+ "LABEL": "Метка",
"AVG_RESOLUTION_TIME": "Среднее время решения",
"AVG_FIRST_RESPONSE_TIME": "Среднее время первого ответа",
"AVG_REPLY_TIME": "Среднее время ожидания клиента",
diff --git a/app/javascript/dashboard/i18n/locale/ru/search.json b/app/javascript/dashboard/i18n/locale/ru/search.json
index c1a363f6c..757ee2634 100644
--- a/app/javascript/dashboard/i18n/locale/ru/search.json
+++ b/app/javascript/dashboard/i18n/locale/ru/search.json
@@ -4,12 +4,14 @@
"ALL": "Все",
"CONTACTS": "Контакты",
"CONVERSATIONS": "Диалоги",
- "MESSAGES": "Сообщения"
+ "MESSAGES": "Сообщения",
+ "ARTICLES": "Статьи"
},
"SECTION": {
"CONTACTS": "Контакты",
"CONVERSATIONS": "Диалоги",
- "MESSAGES": "Сообщения"
+ "MESSAGES": "Сообщения",
+ "ARTICLES": "Статьи"
},
"VIEW_MORE": "Посмотреть больше",
"LOAD_MORE": "Загрузить ещё",
diff --git a/app/javascript/dashboard/i18n/locale/ru/settings.json b/app/javascript/dashboard/i18n/locale/ru/settings.json
index 624b6efcd..9828305d8 100644
--- a/app/javascript/dashboard/i18n/locale/ru/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ru/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Токен доступа",
"NOTE": "Этот токен может быть использован, если вы настраиваете интеграцию на основе API",
- "COPY": "Копировать"
+ "COPY": "Копировать",
+ "RESET": "Сброс",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Аудио уведомления",
@@ -185,7 +190,8 @@
"OFFLINE": "Оффлайн"
},
"SET_AVAILABILITY_SUCCESS": "Доступность успешно установлена",
- "SET_AVAILABILITY_ERROR": "Не удалось установить доступность, попробуйте снова"
+ "SET_AVAILABILITY_ERROR": "Не удалось установить доступность, попробуйте снова",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Ваш адрес электронной почты",
@@ -280,6 +286,7 @@
"REPORTS": "Отчёты",
"SETTINGS": "Настройки",
"CONTACTS": "Контакты",
+ "ACTIVE": "Активно",
"CAPTAIN": "Капитан",
"CAPTAIN_ASSISTANTS": "Ассистенты",
"CAPTAIN_DOCUMENTS": "Документы",
@@ -387,7 +394,8 @@
"LABEL": "Название компании",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Отправить"
+ "SUBMIT": "Отправить",
+ "CANCEL": "Отменить"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/sh/agentBots.json b/app/javascript/dashboard/i18n/locale/sh/agentBots.json
index 41b8fcb1b..d3a0bb991 100644
--- a/app/javascript/dashboard/i18n/locale/sh/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/sh/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Delete",
"TITLE": "Delete bot",
- "SUBMIT": "Delete",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancel",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sh/auditLogs.json b/app/javascript/dashboard/i18n/locale/sh/auditLogs.json
index 35c054fa2..df236f5b5 100644
--- a/app/javascript/dashboard/i18n/locale/sh/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/sh/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sh/automation.json b/app/javascript/dashboard/i18n/locale/sh/automation.json
index bb4946416..86ec0b58b 100644
--- a/app/javascript/dashboard/i18n/locale/sh/automation.json
+++ b/app/javascript/dashboard/i18n/locale/sh/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sh/components.json b/app/javascript/dashboard/i18n/locale/sh/components.json
index c7230b1fc..e44c6e039 100644
--- a/app/javascript/dashboard/i18n/locale/sh/components.json
+++ b/app/javascript/dashboard/i18n/locale/sh/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sh/contact.json b/app/javascript/dashboard/i18n/locale/sh/contact.json
index 5b679c1be..38489d630 100644
--- a/app/javascript/dashboard/i18n/locale/sh/contact.json
+++ b/app/javascript/dashboard/i18n/locale/sh/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Confirm Deletion",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/sh/conversation.json b/app/javascript/dashboard/i18n/locale/sh/conversation.json
index 6cfe9d082..c047f17ad 100644
--- a/app/javascript/dashboard/i18n/locale/sh/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/sh/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/sh/general.json b/app/javascript/dashboard/i18n/locale/sh/general.json
index 78e97db90..129fb239a 100644
--- a/app/javascript/dashboard/i18n/locale/sh/general.json
+++ b/app/javascript/dashboard/i18n/locale/sh/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sh/generalSettings.json b/app/javascript/dashboard/i18n/locale/sh/generalSettings.json
index 9ad4e4b57..c0c4d247d 100644
--- a/app/javascript/dashboard/i18n/locale/sh/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sh/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "Cancel",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/sh/helpCenter.json b/app/javascript/dashboard/i18n/locale/sh/helpCenter.json
index 8fa64108b..f437b83d9 100644
--- a/app/javascript/dashboard/i18n/locale/sh/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/sh/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json
index 1738cf69a..b38e8ed86 100644
--- a/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sh/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sh/integrations.json b/app/javascript/dashboard/i18n/locale/sh/integrations.json
index 05e02723f..4eb1343cb 100644
--- a/app/javascript/dashboard/i18n/locale/sh/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sh/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Cancel"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/sh/macros.json b/app/javascript/dashboard/i18n/locale/sh/macros.json
index 95e02fe94..d22744190 100644
--- a/app/javascript/dashboard/i18n/locale/sh/macros.json
+++ b/app/javascript/dashboard/i18n/locale/sh/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sh/report.json b/app/javascript/dashboard/i18n/locale/sh/report.json
index e176d9147..18f1ed14b 100644
--- a/app/javascript/dashboard/i18n/locale/sh/report.json
+++ b/app/javascript/dashboard/i18n/locale/sh/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/sh/search.json b/app/javascript/dashboard/i18n/locale/sh/search.json
index 3cb566813..e8510ab97 100644
--- a/app/javascript/dashboard/i18n/locale/sh/search.json
+++ b/app/javascript/dashboard/i18n/locale/sh/search.json
@@ -4,12 +4,14 @@
"ALL": "All",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/sh/settings.json b/app/javascript/dashboard/i18n/locale/sh/settings.json
index 7108c1610..219041d75 100644
--- a/app/javascript/dashboard/i18n/locale/sh/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sh/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/sk/agentBots.json b/app/javascript/dashboard/i18n/locale/sk/agentBots.json
index c88e025cb..ff05c0419 100644
--- a/app/javascript/dashboard/i18n/locale/sk/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/sk/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Zrušiť",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Vymazať",
"TITLE": "Delete bot",
- "SUBMIT": "Vymazať",
- "CANCEL_BUTTON_TEXT": "Zrušiť",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Potvrdiť vymazanie",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "Nie, ponechať"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Upraviť",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Zrušiť",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Prístupový token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Zrušiť",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sk/auditLogs.json b/app/javascript/dashboard/i18n/locale/sk/auditLogs.json
index 38d6da68b..327c9274b 100644
--- a/app/javascript/dashboard/i18n/locale/sk/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/sk/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sk/automation.json b/app/javascript/dashboard/i18n/locale/sk/automation.json
index 8d842ef19..ca4cd0dd2 100644
--- a/app/javascript/dashboard/i18n/locale/sk/automation.json
+++ b/app/javascript/dashboard/i18n/locale/sk/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Žiadne"
+ "NONE_OPTION": "Žiadne",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Stlmiť konverzáciu",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Schránka",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Telefónne číslo",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Krajina",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sk/components.json b/app/javascript/dashboard/i18n/locale/sk/components.json
index c03937260..8c705e06d 100644
--- a/app/javascript/dashboard/i18n/locale/sk/components.json
+++ b/app/javascript/dashboard/i18n/locale/sk/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sk/contact.json b/app/javascript/dashboard/i18n/locale/sk/contact.json
index 35fe2fafe..245231cc4 100644
--- a/app/javascript/dashboard/i18n/locale/sk/contact.json
+++ b/app/javascript/dashboard/i18n/locale/sk/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontakty",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Správa",
"SEND_MESSAGE": "Poslať správu",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Vymazať kontakt",
"DELETE_DIALOG": {
"TITLE": "Potvrdiť vymazanie",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Áno, vymazať",
"API": {
"SUCCESS_MESSAGE": "Kontakt úspešne odstránený",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "Vy",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Žiadny kontakt nezodpovedá vášmu vyhľadávaniu 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/sk/conversation.json b/app/javascript/dashboard/i18n/locale/sk/conversation.json
index 6648a8619..bbda30a36 100644
--- a/app/javascript/dashboard/i18n/locale/sk/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/sk/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Načítavajú sa konverzácie",
"CANNOT_REPLY": "Neviete odpovedať, pretože",
"24_HOURS_WINDOW": "24-hodinové obmedzenie okna správ",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Prideliť mne",
"TWILIO_WHATSAPP_CAN_REPLY": "Na túto konverzáciu môžete odpovedať len pomocou šablóny správy z dôvodu",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24-hodinové obmedzenie okna správ",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Odpovedáte na:",
"REMOVE_SELECTION": "Odstrániť výber",
"DOWNLOAD": "Stiahnuť",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Vyriešiť",
"REOPEN_ACTION": "Znovu otvoriť",
"OPEN_ACTION": "Otvoriť",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Viac",
"CLOSE": "Zatvoriť",
"DETAILS": "detaily",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Vymazať"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Označiť ako čakajúce na vybavenie",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Akcie konverzácie",
"CONVERSATION_LABELS": "Označenia konverzácii",
"CONVERSATION_INFO": "Informácie o konverzácii",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Atribúty kontaktu",
"PREVIOUS_CONVERSATION": "Prechádzajúce konverzácie",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/sk/general.json b/app/javascript/dashboard/i18n/locale/sk/general.json
index 2e1198efe..9b8497e11 100644
--- a/app/javascript/dashboard/i18n/locale/sk/general.json
+++ b/app/javascript/dashboard/i18n/locale/sk/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Hľadať",
"EMPTY_STATE": "Žiadne výsledky neboli nájdené"
- }
+ },
+ "CLOSE": "Zatvoriť"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sk/generalSettings.json b/app/javascript/dashboard/i18n/locale/sk/generalSettings.json
index 85827277f..8e12e31f7 100644
--- a/app/javascript/dashboard/i18n/locale/sk/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sk/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Nastavenia účtu",
"SUBMIT": "Aktualizovať nastavenia",
"BACK": "Späť",
@@ -8,6 +14,26 @@
"ERROR": "Nastavenia sa nepodarilo aktualizovať, skúste to znova!",
"SUCCESS": "Úspešne aktualizované nastavenia účtu"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Vymazať",
+ "DISMISS": "Zrušiť",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Prosím, opravte chyby vo formulári",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID účtu",
"NOTE": "Toto ID je potrebné, ak vytvárate integráciu založenú na rozhraní API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Názov účtu",
"PLACEHOLDER": "Názov vášho účtu",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "E-mailová podpora vašej spoločnosti",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Počet dní po automatickom vyriešení tiketu, ak sa nevykonáva žiadna aktivita",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Pre vaše konto je povolená kontinuita konverzácie s e-mailami.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "K dispozícii je aktualizácia {latestChatwootVersion} pre Chatwoot. Prosím, aktualizujte svoju inštanciu.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/sk/helpCenter.json b/app/javascript/dashboard/i18n/locale/sk/helpCenter.json
index 09d2aafee..d6661553e 100644
--- a/app/javascript/dashboard/i18n/locale/sk/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/sk/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json
index 2b99066c1..dac2f9a93 100644
--- a/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sk/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Meno schránky",
"ADD_NAME": "Pridať meno pre vašu schránku",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Vybrať hodnotu"
+ "PICK_A_VALUE": "Vybrať hodnotu",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Ak chcete pridať svoj profil na Twitteri ako kanál, musíte overiť svoj profil Twitter kliknutím na \"Prihlásiť sa pomocou Twitteru\" ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Otváracie hodiny",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Nastavenia",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Pred začatím chatu by mali návštevníci uviesť svoje meno a e-mailovú adresu"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Správa",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Nastavte svoju dostupnosť",
"SUBTITLE": "Nastavenie dostupnosti na widgete livechatu",
@@ -753,7 +788,8 @@
"EMAIL": "E-mail",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API kanál"
+ "API": "API kanál",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sk/integrations.json b/app/javascript/dashboard/i18n/locale/sk/integrations.json
index 99b8f5c80..5ff7aa6e3 100644
--- a/app/javascript/dashboard/i18n/locale/sk/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sk/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Zrušiť"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Poslať správu...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Vy",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Vy",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Zadajte svoju správu...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Meno",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/sk/macros.json b/app/javascript/dashboard/i18n/locale/sk/macros.json
index edf2c644d..130125910 100644
--- a/app/javascript/dashboard/i18n/locale/sk/macros.json
+++ b/app/javascript/dashboard/i18n/locale/sk/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Stlmiť konverzáciu",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sk/report.json b/app/javascript/dashboard/i18n/locale/sk/report.json
index 1cd900ebd..569e4eb9d 100644
--- a/app/javascript/dashboard/i18n/locale/sk/report.json
+++ b/app/javascript/dashboard/i18n/locale/sk/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Načítanie grafu...",
"NO_ENOUGH_DATA": "Na vygenerovanie reportu sme nedostali dostatok dát, skúste to prosím neskôr.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Schránka",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/sk/search.json b/app/javascript/dashboard/i18n/locale/sk/search.json
index 64f900182..c2dad4d7c 100644
--- a/app/javascript/dashboard/i18n/locale/sk/search.json
+++ b/app/javascript/dashboard/i18n/locale/sk/search.json
@@ -4,12 +4,14 @@
"ALL": "Všetko",
"CONTACTS": "Kontakty",
"CONVERSATIONS": "Rozhovory",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakty",
"CONVERSATIONS": "Rozhovory",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/sk/settings.json b/app/javascript/dashboard/i18n/locale/sk/settings.json
index ab1aab464..ab5a33a5b 100644
--- a/app/javascript/dashboard/i18n/locale/sk/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sk/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Prístupový token",
"NOTE": "Tento token môžete použiť, ak vytvárate integráciu založenú na rozhraní API",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Vaša e-mailová adresa",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Nastavenia",
"CONTACTS": "Kontakty",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Názov spoločnosti",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Odoslať"
+ "SUBMIT": "Odoslať",
+ "CANCEL": "Zrušiť"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/sl/agentBots.json b/app/javascript/dashboard/i18n/locale/sl/agentBots.json
index f5c57501f..f6beeebe8 100644
--- a/app/javascript/dashboard/i18n/locale/sl/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/sl/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Boti",
"LOADING_EDITOR": "Nalaganje urejevalnika ...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Ime bota",
- "PLACEHOLDER": "Poimenujte svojega bota.",
- "ERROR": "Zahtevano je ime bota."
- },
- "DESCRIPTION": {
- "LABEL": "Opis bota",
- "PLACEHOLDER": "Kaj počne ta bot?"
- },
- "BOT_CONFIG": {
- "ERROR": "Zgoraj vnesite svojo konfiguracijo bota CSML.",
- "API_ERROR": "Vaša konfiguracija CSML je neveljavna. Popravite jo in poskusite znova."
- },
- "SUBMIT": "Preveri in shrani"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Izberite agentskega bota",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Izberi bota"
},
"ADD": {
- "TITLE": "Konfigurirajte novega bota",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Prekliči",
"API": {
"SUCCESS_MESSAGE": "Bot je bil uspešno dodan.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Botov ni bilo mogoče najti. Bota lahko ustvarite s klikom na gumb 'Konfigurirajte novega bota' ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Pridobivanje botov ...",
- "TYPE": "Vrsta bota"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Izbriši",
"TITLE": "Izbriši bota",
- "SUBMIT": "Izbriši",
- "CANCEL_BUTTON_TEXT": "Prekliči",
- "DESCRIPTION": "Ali ste prepričani, da želite izbrisati tega bota? To dejanje ni mogoče preklicati.",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot uspešno izbrisan.",
"ERROR_MESSAGE": "Bota ni bilo mogoče izbrisati. Prosimo poskusite ponovno."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Uredi",
- "LOADING": "Pridobivanje botov ...",
"TITLE": "Uredi bota",
- "CANCEL_BUTTON_TEXT": "Prekliči",
"API": {
"SUCCESS_MESSAGE": "Bot je bil uspešno posodobljen.",
"ERROR_MESSAGE": "Bota ni bilo mogoče posodobiti. Prosimo poskusite ponovno."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Ime bota",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Zahtevano je ime bota"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Kaj počne ta bot?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Zahtevano je ime bota",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancel",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sl/auditLogs.json b/app/javascript/dashboard/i18n/locale/sl/auditLogs.json
index 8194c667c..f85ad2a3e 100644
--- a/app/javascript/dashboard/i18n/locale/sl/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/sl/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sl/automation.json b/app/javascript/dashboard/i18n/locale/sl/automation.json
index 67b75543a..9fe0becab 100644
--- a/app/javascript/dashboard/i18n/locale/sl/automation.json
+++ b/app/javascript/dashboard/i18n/locale/sl/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Dodaj"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "E-pošta",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Prejemnik",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Prioriteta"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sl/components.json b/app/javascript/dashboard/i18n/locale/sl/components.json
index d4707b1eb..52d6109e1 100644
--- a/app/javascript/dashboard/i18n/locale/sl/components.json
+++ b/app/javascript/dashboard/i18n/locale/sl/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sl/contact.json b/app/javascript/dashboard/i18n/locale/sl/contact.json
index c953d8c03..f1ad75a48 100644
--- a/app/javascript/dashboard/i18n/locale/sl/contact.json
+++ b/app/javascript/dashboard/i18n/locale/sl/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontakti",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Iskanje ...",
"MESSAGE_BUTTON": "Sporočilo",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Confirm Deletion",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "je napisal/a",
"YOU": "Vi",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/sl/conversation.json b/app/javascript/dashboard/i18n/locale/sl/conversation.json
index b5cf4afdf..0b9bad8dd 100644
--- a/app/javascript/dashboard/i18n/locale/sl/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/sl/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/sl/general.json b/app/javascript/dashboard/i18n/locale/sl/general.json
index 390247323..889d4d0c0 100644
--- a/app/javascript/dashboard/i18n/locale/sl/general.json
+++ b/app/javascript/dashboard/i18n/locale/sl/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Iskanje",
"EMPTY_STATE": "Ni rezultatov"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sl/generalSettings.json b/app/javascript/dashboard/i18n/locale/sl/generalSettings.json
index 9ad4e4b57..c0c4d247d 100644
--- a/app/javascript/dashboard/i18n/locale/sl/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sl/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "Cancel",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/sl/helpCenter.json b/app/javascript/dashboard/i18n/locale/sl/helpCenter.json
index 98fe625bb..9bdf6e192 100644
--- a/app/javascript/dashboard/i18n/locale/sl/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/sl/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json
index 25484e3f7..b101293be 100644
--- a/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sl/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Sporočilo",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "vsebuje",
+ "DOES_NOT_CONTAINS": "ne vsebuje"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "E-pošta",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sl/integrations.json b/app/javascript/dashboard/i18n/locale/sl/integrations.json
index 1d0d4d48c..43627d32c 100644
--- a/app/javascript/dashboard/i18n/locale/sl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sl/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Da, izbriši",
"CANCEL": "Prekliči"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Vi",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Vi",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Vnesite svoje sporočilo...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/sl/macros.json b/app/javascript/dashboard/i18n/locale/sl/macros.json
index 95e02fe94..d22744190 100644
--- a/app/javascript/dashboard/i18n/locale/sl/macros.json
+++ b/app/javascript/dashboard/i18n/locale/sl/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sl/report.json b/app/javascript/dashboard/i18n/locale/sl/report.json
index 2455635e0..5c5fd0797 100644
--- a/app/javascript/dashboard/i18n/locale/sl/report.json
+++ b/app/javascript/dashboard/i18n/locale/sl/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Nabiralnik",
"AGENT": "Agent",
"TEAM": "Ekipa",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/sl/search.json b/app/javascript/dashboard/i18n/locale/sl/search.json
index a93879ee1..7ad94f0a2 100644
--- a/app/javascript/dashboard/i18n/locale/sl/search.json
+++ b/app/javascript/dashboard/i18n/locale/sl/search.json
@@ -4,12 +4,14 @@
"ALL": "Vse",
"CONTACTS": "Kontakti",
"CONVERSATIONS": "Pogovori",
- "MESSAGES": "Sporočila"
+ "MESSAGES": "Sporočila",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakti",
"CONVERSATIONS": "Pogovori",
- "MESSAGES": "Sporočila"
+ "MESSAGES": "Sporočila",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/sl/settings.json b/app/javascript/dashboard/i18n/locale/sl/settings.json
index b85f57b97..164305cea 100644
--- a/app/javascript/dashboard/i18n/locale/sl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sl/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/sq/agentBots.json b/app/javascript/dashboard/i18n/locale/sq/agentBots.json
index 41b8fcb1b..d3a0bb991 100644
--- a/app/javascript/dashboard/i18n/locale/sq/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/sq/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Delete",
"TITLE": "Delete bot",
- "SUBMIT": "Delete",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancel",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sq/auditLogs.json b/app/javascript/dashboard/i18n/locale/sq/auditLogs.json
index 8194c667c..f85ad2a3e 100644
--- a/app/javascript/dashboard/i18n/locale/sq/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/sq/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sq/automation.json b/app/javascript/dashboard/i18n/locale/sq/automation.json
index ffae3adb6..b14c8b23b 100644
--- a/app/javascript/dashboard/i18n/locale/sq/automation.json
+++ b/app/javascript/dashboard/i18n/locale/sq/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sq/components.json b/app/javascript/dashboard/i18n/locale/sq/components.json
index c7230b1fc..e44c6e039 100644
--- a/app/javascript/dashboard/i18n/locale/sq/components.json
+++ b/app/javascript/dashboard/i18n/locale/sq/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sq/contact.json b/app/javascript/dashboard/i18n/locale/sq/contact.json
index b1cff8591..f6a929e78 100644
--- a/app/javascript/dashboard/i18n/locale/sq/contact.json
+++ b/app/javascript/dashboard/i18n/locale/sq/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Confirm Deletion",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "Ju",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/sq/conversation.json b/app/javascript/dashboard/i18n/locale/sq/conversation.json
index 6cfe9d082..c047f17ad 100644
--- a/app/javascript/dashboard/i18n/locale/sq/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/sq/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/sq/general.json b/app/javascript/dashboard/i18n/locale/sq/general.json
index 78e97db90..129fb239a 100644
--- a/app/javascript/dashboard/i18n/locale/sq/general.json
+++ b/app/javascript/dashboard/i18n/locale/sq/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sq/generalSettings.json b/app/javascript/dashboard/i18n/locale/sq/generalSettings.json
index 9ad4e4b57..c0c4d247d 100644
--- a/app/javascript/dashboard/i18n/locale/sq/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sq/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "Cancel",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/sq/helpCenter.json b/app/javascript/dashboard/i18n/locale/sq/helpCenter.json
index f3181296a..360d77f10 100644
--- a/app/javascript/dashboard/i18n/locale/sq/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/sq/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json
index 7739f2ca9..a0ab1c84e 100644
--- a/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sq/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sq/integrations.json b/app/javascript/dashboard/i18n/locale/sq/integrations.json
index bd34bca44..59e0f393d 100644
--- a/app/javascript/dashboard/i18n/locale/sq/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sq/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Cancel"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Ju",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Ju",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Shkruani mesazhin tuaj...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/sq/macros.json b/app/javascript/dashboard/i18n/locale/sq/macros.json
index 95e02fe94..d22744190 100644
--- a/app/javascript/dashboard/i18n/locale/sq/macros.json
+++ b/app/javascript/dashboard/i18n/locale/sq/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sq/report.json b/app/javascript/dashboard/i18n/locale/sq/report.json
index 294ca2e7b..7c42fdfba 100644
--- a/app/javascript/dashboard/i18n/locale/sq/report.json
+++ b/app/javascript/dashboard/i18n/locale/sq/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/sq/search.json b/app/javascript/dashboard/i18n/locale/sq/search.json
index 735e6045a..7e129f7d6 100644
--- a/app/javascript/dashboard/i18n/locale/sq/search.json
+++ b/app/javascript/dashboard/i18n/locale/sq/search.json
@@ -4,12 +4,14 @@
"ALL": "All",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/sq/settings.json b/app/javascript/dashboard/i18n/locale/sq/settings.json
index 1c15d5294..ab40a9411 100644
--- a/app/javascript/dashboard/i18n/locale/sq/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sq/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/sr/agentBots.json b/app/javascript/dashboard/i18n/locale/sr/agentBots.json
index aee1b9d75..dc5cf9514 100644
--- a/app/javascript/dashboard/i18n/locale/sr/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/sr/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Otkaži",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Adresa veb zakačke"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Izbriši",
"TITLE": "Delete bot",
- "SUBMIT": "Izbriši",
- "CANCEL_BUTTON_TEXT": "Otkaži",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Potvrdite brisanje",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Da, obriši",
+ "NO": "Ne, zadrži"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Uredi",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Otkaži",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Token za pristup",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Opis",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Adresa veb zakačke",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Otkaži",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sr/auditLogs.json b/app/javascript/dashboard/i18n/locale/sr/auditLogs.json
index d140c3bd1..9fade3c5b 100644
--- a/app/javascript/dashboard/i18n/locale/sr/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/sr/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sr/automation.json b/app/javascript/dashboard/i18n/locale/sr/automation.json
index 83dac4c7d..ee0272085 100644
--- a/app/javascript/dashboard/i18n/locale/sr/automation.json
+++ b/app/javascript/dashboard/i18n/locale/sr/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Niko"
+ "NONE_OPTION": "Niko",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Razgovor je napravljen",
+ "CONVERSATION_UPDATED": "Razgovor je izmenjen",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Utišaj razgovor",
+ "SNOOZE_CONVERSATION": "Odloži razgovor",
+ "RESOLVE_CONVERSATION": "Reši razgovor",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "E-pošta",
+ "INBOX": "Prijemno sanduče",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Broj telefona",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Jezik pregledača",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Država",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Tim",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sr/components.json b/app/javascript/dashboard/i18n/locale/sr/components.json
index 42a86f093..f78a78497 100644
--- a/app/javascript/dashboard/i18n/locale/sr/components.json
+++ b/app/javascript/dashboard/i18n/locale/sr/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Saznajte više",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sr/contact.json b/app/javascript/dashboard/i18n/locale/sr/contact.json
index ce709d4a9..bbb3e19d0 100644
--- a/app/javascript/dashboard/i18n/locale/sr/contact.json
+++ b/app/javascript/dashboard/i18n/locale/sr/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontakti",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Poruka",
"SEND_MESSAGE": "Pošalji poruku",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Obriši kontakt",
"DELETE_DIALOG": {
"TITLE": "Potvrdite brisanje",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Da, obriši",
"API": {
"SUCCESS_MESSAGE": "Kontakt je uspešno obrisan",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Nisu pronađeni kontakti 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/sr/conversation.json b/app/javascript/dashboard/i18n/locale/sr/conversation.json
index 8e921b2e7..2543dbcb9 100644
--- a/app/javascript/dashboard/i18n/locale/sr/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/sr/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Učitavanje razgovora",
"CANNOT_REPLY": "Ne možete da odgovorite zbog",
"24_HOURS_WINDOW": "24-časovno ograničenje poruka",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Ovaj razgovor nije dodeljen vama. Da li želite da dodelite razgovor sebi?",
"ASSIGN_TO_ME": "Dodeli meni",
"TWILIO_WHATSAPP_CAN_REPLY": "Možete jedino da odgovarate na ovaj razgovor koristeći šablon poruka zbog",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24-časovno ograničenje poruka",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Odgovarate na:",
"REMOVE_SELECTION": "Ukloni izbor",
"DOWNLOAD": "Preuzmi",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Reši",
"REOPEN_ACTION": "Ponovo otvori",
"OPEN_ACTION": "Otvoreni",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Više",
"CLOSE": "Zatvori",
"DETAILS": "detalji",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Izbriši"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Označeno na čekanju",
"RESOLVED": "Označi kao rešeno",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Dodeli oznaku",
"AGENTS_LOADING": "Učitavanje agenata...",
"ASSIGN_TEAM": "Dodeli tim",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Razgovor sa ID {conversationId} je dodeljen \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Oznaka je uspešno dodeljena",
"ASSIGN_LABEL_FAILED": "Nije uspela dodela oznake",
"CHANGE_TEAM": "Tim razgovora je promenjen",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Nije moguće slanje poruke, molim vas pokušajte ponovo",
"SENT_BY": "Poslao:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Akcije nad razgovorom",
"CONVERSATION_LABELS": "Oznake razgovora",
"CONVERSATION_INFO": "Informacije o razgovoru",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Atributi kontakta",
"PREVIOUS_CONVERSATION": "Prethodni razgovor",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/sr/general.json b/app/javascript/dashboard/i18n/locale/sr/general.json
index 46e1d3a00..84b2546c4 100644
--- a/app/javascript/dashboard/i18n/locale/sr/general.json
+++ b/app/javascript/dashboard/i18n/locale/sr/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Traži",
"EMPTY_STATE": "Ništa nije pronađeno"
- }
+ },
+ "CLOSE": "Zatvori"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sr/generalSettings.json b/app/javascript/dashboard/i18n/locale/sr/generalSettings.json
index ba4b044e7..870e0cace 100644
--- a/app/javascript/dashboard/i18n/locale/sr/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sr/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Podešavanja naloga",
"SUBMIT": "Primeni izmene",
"BACK": "Nazad",
@@ -8,6 +14,26 @@
"ERROR": "Nije bilo moguće primeniti izmene, pokušajte ponovo!",
"SUCCESS": "Izmene podešavanja naloga su uspešno primenjene"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Izbriši",
+ "DISMISS": "Otkaži",
+ "PLACE_HOLDER": "Molim vas upišite {accountName} za potvrdu"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Molim vas ispravite greške formulara",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID naloga",
"NOTE": "Ovaj ID je neophodan ako izgrađujete integraciju zasnovanu na API-ju"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Naziv naloga",
"PLACEHOLDER": "Naziv vašeg naloga",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "E-pošta podrške vaše kompanije",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Broj dana nakon čega će se tiket automatski rešiti ako nema aktivnosti",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Molim vas unesite ispravno trajanje za automatsko rešavanje (minimalno 1 dan i maksimalno 999 dana)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Primeni",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Nastavljanje razgovora putem e-poruka je omogućeno za vaš nalog.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Dostupna je nadogradnja {latestChatwootVersion} za Chatwoot. Molim vas nadogradite vaše izdanje.",
"LEARN_MORE": "Saznajte više",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/sr/helpCenter.json b/app/javascript/dashboard/i18n/locale/sr/helpCenter.json
index be98379cb..68595fce6 100644
--- a/app/javascript/dashboard/i18n/locale/sr/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/sr/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug je obavezan"
+ "ERROR": "Slug je obavezan",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json
index fc3f99955..9ede90e66 100644
--- a/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sr/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Naziv prijemnog sandučeta",
"ADD_NAME": "Dodajte naziv vašem prijemnom sandučetu",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Izaberite vrednost"
+ "PICK_A_VALUE": "Izaberite vrednost",
+ "CREATE_INBOX": "Napravi prijemno sanduče"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Da bi ste dodali Tviter profil kao kanal, morate da autentifikujete vaš Tviter profil klikom na 'Prijavi se sa Tviterom' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Formular pre ćaskanja",
"BUSINESS_HOURS": "Radno vreme",
"WIDGET_BUILDER": "Izgrađivač vidžeta",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "Izveštaj o zadovoljstvu"
},
"SETTINGS": "Podešavanja",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Omogući polje za prikupljanje e-pošte",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Omogući ili onemogući polje za prikupljanje e-pošte za novi razgovor",
"AUTO_ASSIGNMENT": "Omogući automatsko dodeljivanje",
- "ENABLE_CSAT": "Omogući ocenu zadovoljstva korisnika",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Omogući/onemogući upitnik o zadovoljstvu korisnika nakon rešavanja razgovora",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Omogući nastavljanje razgovora putem e-pošte",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Razgovori će se nastaviti putem e-pošte ako je dostupna adresa e-pošte kontakta.",
@@ -568,6 +577,32 @@
"LABEL": "Posetioci bi trebali da dostave njihovo ime i adresu e-pošte pre započinjanja ćaskanja"
}
},
+ "CSAT": {
+ "TITLE": "Omogući ocenu zadovoljstva korisnika",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Poruka",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "sadrži",
+ "DOES_NOT_CONTAINS": "ne sadrži"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Podesite vašu dostupnost",
"SUBTITLE": "Podesite vašu dostupnost na vidžetu za uživo razgovor",
@@ -753,7 +788,8 @@
"EMAIL": "E-pošta",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API kanal"
+ "API": "API kanal",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sr/integrations.json b/app/javascript/dashboard/i18n/locale/sr/integrations.json
index 382ebd651..cb72cc150 100644
--- a/app/javascript/dashboard/i18n/locale/sr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sr/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Poruka je izmenjena",
"WEBWIDGET_TRIGGERED": "Vidžet za ćaskanje je otvoren od strane korisnika",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Otkaži"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Pošalji poruku...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Napišite vašu poruku...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Primeni",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Mogućnosti",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Ime",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Opis",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Mogućnosti",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/sr/macros.json b/app/javascript/dashboard/i18n/locale/sr/macros.json
index 76eb457cf..9b0002656 100644
--- a/app/javascript/dashboard/i18n/locale/sr/macros.json
+++ b/app/javascript/dashboard/i18n/locale/sr/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Utišaj razgovor",
+ "SNOOZE_CONVERSATION": "Odloži razgovor",
+ "RESOLVE_CONVERSATION": "Reši razgovor",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sr/report.json b/app/javascript/dashboard/i18n/locale/sr/report.json
index bccd46e1c..acf3d941a 100644
--- a/app/javascript/dashboard/i18n/locale/sr/report.json
+++ b/app/javascript/dashboard/i18n/locale/sr/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Pregled oznaka",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Učitavanje podataka grafikona...",
"NO_ENOUGH_DATA": "Nismo primili dovoljno podataka da bi smo generisali izveštaj, Molim vas pokušajte ponovo.",
"DOWNLOAD_LABEL_REPORTS": "Preuzmi izveštaj o oznakama",
@@ -559,6 +560,7 @@
"INBOX": "Prijemno sanduče",
"AGENT": "Agent",
"TEAM": "Tim",
+ "LABEL": "Oznaka",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/sr/search.json b/app/javascript/dashboard/i18n/locale/sr/search.json
index e94eda67f..c97c418ca 100644
--- a/app/javascript/dashboard/i18n/locale/sr/search.json
+++ b/app/javascript/dashboard/i18n/locale/sr/search.json
@@ -4,12 +4,14 @@
"ALL": "Sve",
"CONTACTS": "Kontakti",
"CONVERSATIONS": "Razgovori",
- "MESSAGES": "Poruke"
+ "MESSAGES": "Poruke",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakti",
"CONVERSATIONS": "Razgovori",
- "MESSAGES": "Poruke"
+ "MESSAGES": "Poruke",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/sr/settings.json b/app/javascript/dashboard/i18n/locale/sr/settings.json
index 3383632df..b36d7d1ef 100644
--- a/app/javascript/dashboard/i18n/locale/sr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sr/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Token za pristup",
"NOTE": "Ovaj token se može koristiti ako izgrađujete integraciju zasnovanu na API-ju",
- "COPY": "Kopiraj"
+ "COPY": "Kopiraj",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Nedostupan"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Vaša adresa e-pošte",
@@ -280,6 +286,7 @@
"REPORTS": "Izveštaji",
"SETTINGS": "Podešavanja",
"CONTACTS": "Kontakti",
+ "ACTIVE": "Aktivno",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Ime firme",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Pošalji"
+ "SUBMIT": "Pošalji",
+ "CANCEL": "Otkaži"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/sv/agentBots.json b/app/javascript/dashboard/i18n/locale/sv/agentBots.json
index 6d5850c29..fea4cd09a 100644
--- a/app/javascript/dashboard/i18n/locale/sv/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/sv/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Avbryt",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Radera",
"TITLE": "Delete bot",
- "SUBMIT": "Radera",
- "CANCEL_BUTTON_TEXT": "Avbryt",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Bekräfta borttagning",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Ja, ta bort",
+ "NO": "Nej, behåll"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Redigera",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Avbryt",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Åtkomsttoken",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivning",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Avbryt",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sv/auditLogs.json b/app/javascript/dashboard/i18n/locale/sv/auditLogs.json
index 4a2971116..6b57c0642 100644
--- a/app/javascript/dashboard/i18n/locale/sv/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/sv/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sv/automation.json b/app/javascript/dashboard/i18n/locale/sv/automation.json
index f747ff229..406cfd995 100644
--- a/app/javascript/dashboard/i18n/locale/sv/automation.json
+++ b/app/javascript/dashboard/i18n/locale/sv/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Inget"
+ "NONE_OPTION": "Inget",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Tysta konversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "E-post",
+ "INBOX": "Inkorg",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Telefonnummer",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sv/components.json b/app/javascript/dashboard/i18n/locale/sv/components.json
index fe14f7b45..bd0548eed 100644
--- a/app/javascript/dashboard/i18n/locale/sv/components.json
+++ b/app/javascript/dashboard/i18n/locale/sv/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Läs mer",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sv/contact.json b/app/javascript/dashboard/i18n/locale/sv/contact.json
index 909f79df8..0937bf565 100644
--- a/app/javascript/dashboard/i18n/locale/sv/contact.json
+++ b/app/javascript/dashboard/i18n/locale/sv/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kontakter",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Meddelande",
"SEND_MESSAGE": "Skicka meddelande",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Ta bort kontakt",
"DELETE_DIALOG": {
"TITLE": "Bekräfta borttagning",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Ja, ta bort",
"API": {
"SUCCESS_MESSAGE": "Kontakten har tagits bort",
@@ -544,6 +549,9 @@
"WROTE": "skrev",
"YOU": "Du",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Inga kontakter matchar din sökning 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/sv/conversation.json b/app/javascript/dashboard/i18n/locale/sv/conversation.json
index d28a3d9fb..234656f95 100644
--- a/app/javascript/dashboard/i18n/locale/sv/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/sv/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Laddar konversationer",
"CANNOT_REPLY": "Du kan inte svara på grund av",
"24_HOURS_WINDOW": "24 timmars meddelandebegränsning",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Den här konversationen är inte tilldelad dig. Vill du tilldela dig själv den här konversationen?",
"ASSIGN_TO_ME": "Tilldela mig",
"TWILIO_WHATSAPP_CAN_REPLY": "Du kan bara svara på denna konversation med ett mallmeddelande på grund av",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 timmars meddelandebegränsning",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Du svarar:",
"REMOVE_SELECTION": "Ta bort urval",
"DOWNLOAD": "Hämta",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Lös",
"REOPEN_ACTION": "Återöppna",
"OPEN_ACTION": "Öppna",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Mer",
"CLOSE": "Stäng",
"DETAILS": "detaljer",
@@ -115,6 +118,11 @@
"FAILED": "Kunde inte ändra prioritet. Försök igen."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Radera"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Markera som väntande",
"RESOLVED": "Markera som löst",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Tilldela etikett",
"AGENTS_LOADING": "Laddar agenter...",
"ASSIGN_TEAM": "Tilldela team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Konversationsteamet har ändrats",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Det gick inte att skicka detta meddelande, försök igen senare",
"SENT_BY": "Skickat av:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Etiketter för konversation",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Tidigare konversationer",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/sv/general.json b/app/javascript/dashboard/i18n/locale/sv/general.json
index c5218d71d..4bfbcc28b 100644
--- a/app/javascript/dashboard/i18n/locale/sv/general.json
+++ b/app/javascript/dashboard/i18n/locale/sv/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Sök",
"EMPTY_STATE": "Inga resultat hittades"
- }
+ },
+ "CLOSE": "Stäng"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sv/generalSettings.json b/app/javascript/dashboard/i18n/locale/sv/generalSettings.json
index c94324c78..3258dfd7d 100644
--- a/app/javascript/dashboard/i18n/locale/sv/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/sv/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Kontoinställningar",
"SUBMIT": "Uppdatera inställningar",
"BACK": "Tillbaka",
@@ -8,6 +14,26 @@
"ERROR": "Kunde inte uppdatera inställningar, försök igen!",
"SUCCESS": "Uppdaterade kontoinställningar"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Radera",
+ "DISMISS": "Avbryt",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Vänligen åtgärda formulärfel",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Kontonamn",
"PLACEHOLDER": "Ditt kontonamn",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Ditt företags supportmejl",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Antal dagar till ett ärende ska automatlösas på grund av inaktivitet",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Uppdatera",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Konversationskontinuitet med e-post är aktiverat för ditt konto.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "En uppdatering {latestChatwootVersion} för Chatwoot är tillgänglig. Vänligen uppdatera din instans.",
"LEARN_MORE": "Läs mer",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/sv/helpCenter.json b/app/javascript/dashboard/i18n/locale/sv/helpCenter.json
index 4c4fcfd64..20a824f85 100644
--- a/app/javascript/dashboard/i18n/locale/sv/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/sv/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json
index af27db978..7d3706af6 100644
--- a/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/sv/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inkorgsnamn",
"ADD_NAME": "Lägg till ett namn för din inkorg",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Välj ett värde"
+ "PICK_A_VALUE": "Välj ett värde",
+ "CREATE_INBOX": "Skapa inkorg"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "För att lägga till din Twitter-profil som en kanal måste du autentisera din Twitter-profil genom att klicka på \"Logga in med Twitter\" ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Förchattformulär",
"BUSINESS_HOURS": "Öppettider",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Inställningar",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Aktivera insamlingsbox för e-post",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Aktivera eller inaktivera insamlingsbox för e-post på ny konversation",
"AUTO_ASSIGNMENT": "Aktivera automatisk tilldelning",
- "ENABLE_CSAT": "Aktivera CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Aktivera/inaktivera CSAT(kundnöjdhet) undersökning efter att ha löst ett samtal",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Besökare bör uppge sitt namn och sin e-postadress innan de startar chatten"
}
},
+ "CSAT": {
+ "TITLE": "Aktivera CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Meddelande",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Ställ in din tillgänglighet",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "E-post",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API-kanal"
+ "API": "API-kanal",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sv/integrations.json b/app/javascript/dashboard/i18n/locale/sv/integrations.json
index ef7c17430..11d651b45 100644
--- a/app/javascript/dashboard/i18n/locale/sv/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/sv/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Ja, ta bort",
"CANCEL": "Avbryt"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Skicka meddelande...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Du",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Du",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Skriv ditt meddelande...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Uppdatera",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Funktioner",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Namn",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Beskrivning",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Funktioner",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/sv/macros.json b/app/javascript/dashboard/i18n/locale/sv/macros.json
index 547b75e3b..2f96a8a9b 100644
--- a/app/javascript/dashboard/i18n/locale/sv/macros.json
+++ b/app/javascript/dashboard/i18n/locale/sv/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Tysta konversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/sv/report.json b/app/javascript/dashboard/i18n/locale/sv/report.json
index da1446350..87f21fd4f 100644
--- a/app/javascript/dashboard/i18n/locale/sv/report.json
+++ b/app/javascript/dashboard/i18n/locale/sv/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Laddar diagramdata...",
"NO_ENOUGH_DATA": "Vi har inte fått tillräckligt många datapunkter för att generera en rapport, försök igen senare.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inkorg",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/sv/search.json b/app/javascript/dashboard/i18n/locale/sv/search.json
index dfea54193..31b2ea97a 100644
--- a/app/javascript/dashboard/i18n/locale/sv/search.json
+++ b/app/javascript/dashboard/i18n/locale/sv/search.json
@@ -4,12 +4,14 @@
"ALL": "Alla",
"CONTACTS": "Kontakter",
"CONVERSATIONS": "Konversationer",
- "MESSAGES": "Meddelanden"
+ "MESSAGES": "Meddelanden",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakter",
"CONVERSATIONS": "Konversationer",
- "MESSAGES": "Meddelanden"
+ "MESSAGES": "Meddelanden",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/sv/settings.json b/app/javascript/dashboard/i18n/locale/sv/settings.json
index eaa29c82e..645f3e581 100644
--- a/app/javascript/dashboard/i18n/locale/sv/settings.json
+++ b/app/javascript/dashboard/i18n/locale/sv/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Åtkomsttoken",
"NOTE": "Denna token kan användas om du bygger en API-baserad integration",
- "COPY": "Kopiera"
+ "COPY": "Kopiera",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Din e-postadress",
@@ -280,6 +286,7 @@
"REPORTS": "Rapporter",
"SETTINGS": "Inställningar",
"CONTACTS": "Kontakter",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Företagsnamn",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Skicka"
+ "SUBMIT": "Skicka",
+ "CANCEL": "Avbryt"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ta/agentBots.json b/app/javascript/dashboard/i18n/locale/ta/agentBots.json
index 47fd1b0b7..071a8c08e 100644
--- a/app/javascript/dashboard/i18n/locale/ta/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ta/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "ரத்துசெய்",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "வெப்ஹூக் URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Delete",
"TITLE": "Delete bot",
- "SUBMIT": "Delete",
- "CANCEL_BUTTON_TEXT": "ரத்துசெய்",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "நீக்குதலை உறுதிப்படுத்தவும்",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "திருத்து",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "ரத்துசெய்",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "அணுகுவதற்கான டோக்கன்",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "வெப்ஹூக் URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "ரத்துசெய்",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ta/auditLogs.json b/app/javascript/dashboard/i18n/locale/ta/auditLogs.json
index 3bc3cb98a..0a4749ebf 100644
--- a/app/javascript/dashboard/i18n/locale/ta/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ta/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ta/automation.json b/app/javascript/dashboard/i18n/locale/ta/automation.json
index 9d9bd7644..82c2b4809 100644
--- a/app/javascript/dashboard/i18n/locale/ta/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ta/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "இமெயில்",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "நிலை",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ta/components.json b/app/javascript/dashboard/i18n/locale/ta/components.json
index 59a7ddec1..4adf87ecf 100644
--- a/app/javascript/dashboard/i18n/locale/ta/components.json
+++ b/app/javascript/dashboard/i18n/locale/ta/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ta/contact.json b/app/javascript/dashboard/i18n/locale/ta/contact.json
index eab8f25cb..d1a3a5dd3 100644
--- a/app/javascript/dashboard/i18n/locale/ta/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ta/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "நீக்குதலை உறுதிப்படுத்தவும்",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ta/conversation.json b/app/javascript/dashboard/i18n/locale/ta/conversation.json
index 8cfe5634d..1e2028e82 100644
--- a/app/javascript/dashboard/i18n/locale/ta/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ta/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "மேலும் உரையாடல்களை ஏற்றுகிறோம்",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "பதிவிறக்கம்",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "தீர்",
"REOPEN_ACTION": "மீண்டும் திற",
"OPEN_ACTION": "திற",
+ "MORE_ACTIONS": "More actions",
"OPEN": "மேலும்",
"CLOSE": "மூடு",
"DETAILS": "விவரங்கள்",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "உரையாடல் லேபிள்கள்",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "முந்தைய உரையாடல்கள்",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ta/general.json b/app/javascript/dashboard/i18n/locale/ta/general.json
index 78e97db90..8f4efd01d 100644
--- a/app/javascript/dashboard/i18n/locale/ta/general.json
+++ b/app/javascript/dashboard/i18n/locale/ta/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "மூடு"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ta/generalSettings.json b/app/javascript/dashboard/i18n/locale/ta/generalSettings.json
index 37c574d7f..fd0c21773 100644
--- a/app/javascript/dashboard/i18n/locale/ta/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ta/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "கணக்கு அமைப்புகள்",
"SUBMIT": "அமைப்புகளைப் புதுப்பிக்கவும்",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "அமைப்புகளைப் புதுப்பிக்க முடியவில்லை, மீண்டும் முயற்சிக்கவும்!",
"SUCCESS": "கணக்கு அமைப்புகளை வெற்றிகரமாக புதுப்பிக்கப்பட்டுள்ளது"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "ரத்துசெய்",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "படிவ பிழைகளை சரிசெய்யவும்",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "கணக்கின் பெயர்",
"PLACEHOLDER": "உங்கள் கணக்கின் பெயர்",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "உங்கள் நிறுவனத்தின் சேவைக்கான ஈ-மெயில் முகவரி",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "புதுப்பிப்பு",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/ta/helpCenter.json b/app/javascript/dashboard/i18n/locale/ta/helpCenter.json
index 85174a517..32401dc2e 100644
--- a/app/javascript/dashboard/i18n/locale/ta/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ta/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json
index 177bfb32b..c9774a8c2 100644
--- a/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ta/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "இன்பாக்ஸ் பெயர்",
"ADD_NAME": "உங்கள் இன்பாக்ஸுக்கு ஒரு பெயரைச் சேர்க்கவும்",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "மதிப்பைத் தேர்ந்தெடுங்கள்"
+ "PICK_A_VALUE": "மதிப்பைத் தேர்ந்தெடுங்கள்",
+ "CREATE_INBOX": "இன்பாக்ஸை உருவாக்கவும்"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "உங்கள் ட்விட்டர் சுயவிவரத்தை ஒரு சேனலாக சேர்க்க, 'ட்விட்டருடன் உள்நுழைக' என்பதைக் கிளிக் செய்யாவும், இதன் மூலம் உங்கள் சுயவிவரத்தை ட்விட்டர் வாயிலாக அங்கீகரிக்கிறீர்கள் ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "அமைப்புகள்",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "தானாக ஒதுக்கீட்டை இயக்கு",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "இமெயில்",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ta/integrations.json b/app/javascript/dashboard/i18n/locale/ta/integrations.json
index 876ce1608..cfad7d30f 100644
--- a/app/javascript/dashboard/i18n/locale/ta/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ta/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "ரத்துசெய்"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "புதுப்பிப்பு",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "பெயர்",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/ta/macros.json b/app/javascript/dashboard/i18n/locale/ta/macros.json
index c8e71bc15..b422140c1 100644
--- a/app/javascript/dashboard/i18n/locale/ta/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ta/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ta/report.json b/app/javascript/dashboard/i18n/locale/ta/report.json
index 332dfc733..813e31142 100644
--- a/app/javascript/dashboard/i18n/locale/ta/report.json
+++ b/app/javascript/dashboard/i18n/locale/ta/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "சார்ட்டுக்கான டேட்டாவை பெறுகிறது...",
"NO_ENOUGH_DATA": "அறிக்கையை உருவாக்க போதுமான தரவுகளை பெறவில்லை, தயவுசெய்து மீண்டும் முயற்சிக்கவும்.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "ஏஜென்ட்",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/ta/search.json b/app/javascript/dashboard/i18n/locale/ta/search.json
index a0684df7c..41120b398 100644
--- a/app/javascript/dashboard/i18n/locale/ta/search.json
+++ b/app/javascript/dashboard/i18n/locale/ta/search.json
@@ -4,12 +4,14 @@
"ALL": "எல்லாம்",
"CONTACTS": "Contacts",
"CONVERSATIONS": "உரையாடல்கள்",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "உரையாடல்கள்",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/ta/settings.json b/app/javascript/dashboard/i18n/locale/ta/settings.json
index 2c34f8d25..59e4ca8fc 100644
--- a/app/javascript/dashboard/i18n/locale/ta/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ta/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "அணுகுவதற்கான டோக்கன்",
"NOTE": "நீங்கள் API அடிப்படையிலான ஒருங்கிணைப்பை உருவாக்கினால் இந்த டோக்கனைப் பயன்படுத்தலாம்",
- "COPY": "நகல்"
+ "COPY": "நகல்",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "உங்கள் ஈ-மெயில் முகவரி",
@@ -280,6 +286,7 @@
"REPORTS": "அறிக்கைகள்",
"SETTINGS": "அமைப்புகள்",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "வெய்ன் எண்டர்பிரைசஸ்"
},
- "SUBMIT": "சமர்பிக்கவும்"
+ "SUBMIT": "சமர்பிக்கவும்",
+ "CANCEL": "ரத்துசெய்"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/th/agentBots.json b/app/javascript/dashboard/i18n/locale/th/agentBots.json
index 3484ec045..c5b2690b3 100644
--- a/app/javascript/dashboard/i18n/locale/th/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/th/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "บอท",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "กรุณากรอกชื่อของบอท."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "ยกเลิก",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "ลิ้ง Webhook"
+ }
},
"DELETE": {
"BUTTON_TEXT": "ลบ",
"TITLE": "Delete bot",
- "SUBMIT": "ลบ",
- "CANCEL_BUTTON_TEXT": "ยกเลิก",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "ยืนยันการลบ",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "เอาเลย",
+ "NO": "ไม่"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "เเก้ไข",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "ยกเลิก",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "กรุณากรอกชื่อของบอท"
+ },
+ "DESCRIPTION": {
+ "LABEL": "คำอธิบาย",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "ลิ้ง Webhook",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "กรุณากรอกชื่อของบอท",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "ยกเลิก",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/th/auditLogs.json b/app/javascript/dashboard/i18n/locale/th/auditLogs.json
index 69885ca63..450be07fb 100644
--- a/app/javascript/dashboard/i18n/locale/th/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/th/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/th/automation.json b/app/javascript/dashboard/i18n/locale/th/automation.json
index 7704fa376..6e11773e7 100644
--- a/app/javascript/dashboard/i18n/locale/th/automation.json
+++ b/app/javascript/dashboard/i18n/locale/th/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "ไม่มี"
+ "NONE_OPTION": "ไม่มี",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "การสนทนาที่ถูกสร้าง",
+ "CONVERSATION_UPDATED": "อัปเดตการสนทนาแล้ว",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "ระงับการสนทนา",
+ "SNOOZE_CONVERSATION": "พักการสนทนา",
+ "RESOLVE_CONVERSATION": "เสร็จสิ้นการสนทนา",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "อีเมล์",
+ "INBOX": "กล่องข้อความ",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "หมายเลขโทรศัพท์",
+ "STATUS": "สถานะ",
+ "BROWSER_LANGUAGE": "ภาษาของเบราว์เซอร์",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "ประเทศ",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "ทีม",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/th/components.json b/app/javascript/dashboard/i18n/locale/th/components.json
index f20c1e3fd..93cf557c3 100644
--- a/app/javascript/dashboard/i18n/locale/th/components.json
+++ b/app/javascript/dashboard/i18n/locale/th/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "เรียนรู้เพิ่มเติม",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/th/contact.json b/app/javascript/dashboard/i18n/locale/th/contact.json
index 6f1ca28e9..292e8ccf9 100644
--- a/app/javascript/dashboard/i18n/locale/th/contact.json
+++ b/app/javascript/dashboard/i18n/locale/th/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "ผู้ติดต่อ",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "ข้อความ",
"SEND_MESSAGE": "ส่วข้อความ",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "ลบผู้ติดต่อ",
"DELETE_DIALOG": {
"TITLE": "ยืนยันการลบ",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "เอาเลย",
"API": {
"SUCCESS_MESSAGE": "ลบผู้ติดต่อสำเร็จแล้ว",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "ไม่มีผู้ติดต่อที่ตรงกัน 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/th/conversation.json b/app/javascript/dashboard/i18n/locale/th/conversation.json
index a1f5cf4e1..8677f18d7 100644
--- a/app/javascript/dashboard/i18n/locale/th/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/th/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "กำลังโหลดการสนทนา",
"CANNOT_REPLY": "คุณไม่สามารถตอบกลับได้เนื่องจาก",
"24_HOURS_WINDOW": "การจำกัดหน้าต่างข้อความ 24 ชั่วโมง",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "การสนทนานี้ไม่ได้ถูกมอบหมายให้คุณ ต้องการที่จะจัดการด้วยตัวเองหรือไม่?",
"ASSIGN_TO_ME": "มอบหมายให้ฉัน",
"TWILIO_WHATSAPP_CAN_REPLY": "คุณสามารถตอบกลับการสนทนานี้ได้โดยใช้รูปแบบข้อความที่กำหนดเท่านั้น",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "การจำกัดหน้าต่างข้อความ 24 ชั่วโมง",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "คุณกำลังตอบกลับ:",
"REMOVE_SELECTION": "ลบตัวเลือก",
"DOWNLOAD": "ดาวโหลด",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "เสร็จสิ้น",
"REOPEN_ACTION": "เปิดใหม่อีกครั้ง",
"OPEN_ACTION": "เปิด",
+ "MORE_ACTIONS": "More actions",
"OPEN": "เพิ่มเติม",
"CLOSE": "ปิด",
"DETAILS": "รายละเอียด",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "ลบ"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "ทำเครื่องหมายว่าอยู่ระหว่างดำเนินการ",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "รหัสการสนทนา {conversationId} ถูกมอบหมายให้กับ {agentName}",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "เปลี่ยนทีมการสนทนาเเล้ว",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "ไฟล์ของคุณมีขนาดเกิน {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
"MESSAGE_ERROR": "ไม่สามารถส่งข้อความนี้ได้ โปรดลองใหม่อีกครั้ง",
"SENT_BY": "ส่งโดย:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "การดำเนินการสนทนา",
"CONVERSATION_LABELS": "ป้ายกำกับการสนทนา",
"CONVERSATION_INFO": "ข้อมูลการสนทนา",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "แอตทริบิวต์ผู้ติดต่อ",
"PREVIOUS_CONVERSATION": "การสนทนาก่อนหน้า",
"MACROS": "คีย์ลัด",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/th/general.json b/app/javascript/dashboard/i18n/locale/th/general.json
index a081fc80a..8d52d9940 100644
--- a/app/javascript/dashboard/i18n/locale/th/general.json
+++ b/app/javascript/dashboard/i18n/locale/th/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "ค้นหา",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "ปิด"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/th/generalSettings.json b/app/javascript/dashboard/i18n/locale/th/generalSettings.json
index 719d396cb..55b4f9b1d 100644
--- a/app/javascript/dashboard/i18n/locale/th/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/th/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "ตั้งค่าบัญชี",
"SUBMIT": "อัพเดทการตั้งค่า",
"BACK": "ย้อนกลับ",
@@ -8,6 +14,26 @@
"ERROR": "ไม่สามารถอัพเดทการตั้งค่าได้ ลองอีกครั้งสิ",
"SUCCESS": "อัพเดทการตั้งค่าบัญชีเเล้ว"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "ลบ",
+ "DISMISS": "ยกเลิก",
+ "PLACE_HOLDER": "โปรดพิมพ์ {accountName} เพื่อยืนยัน"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "กรุณาเเก้ไขข้อผิดพลาดในเเบบฟอร์ม",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "หมายเลขบัญชี",
"NOTE": "โปรดระบุหมายเลขบัญชีหากคุณต้องการเชื่อมต่อกับ API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "ชื่อบัญชี",
"PLACEHOLDER": "ชื่อบัญชีของคุณ",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "อีเมล์ช่วยเหลือในบริษัทของคุณ",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "จำนวนวันที่จะเปลี่ยนสถานะเป็นสำเร็จถ้าไม่มีความเคลื่อนไหว",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "โปรดระบุช่วงเวลาในการปิดการสนทนาอัตโนมัติให้ถูกต้อง (ขั้นต่ำ 1 วัน มากสุด 999 วัน)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "อัพเดท",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "การสนทนาด้วยอีเมล์ถูกเปิดสำหรับบัญชีของคุณ",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Chatwoot เวอร์ชั่น {latestChatwootVersion} พร้อมสำหรับการอัปเดต กรุณาอัปเดตเวอร์ชั่นของคุณ",
"LEARN_MORE": "เรียนรู้เพิ่มเติม",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/th/helpCenter.json b/app/javascript/dashboard/i18n/locale/th/helpCenter.json
index 4b0038ff2..1032d2927 100644
--- a/app/javascript/dashboard/i18n/locale/th/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/th/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json
index 3a52f318d..ad80df533 100644
--- a/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/th/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "ชื่อกล่องข้อความ",
"ADD_NAME": "เพิ่มชื่อให้กล่องข้อความของคุณ",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "เลือกค่า"
+ "PICK_A_VALUE": "เลือกค่า",
+ "CREATE_INBOX": "สร้างกล่องข้อความ"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "ในการเพิ่มโปรไฟล์ Twitter ของคุณเป็นช่องคุณต้องตรวจสอบสิทธิ์โปรไฟล์ Twitter ของคุณโดยคลิกที่ \"ลงชื่อเข้าใช้ด้วย Twitter\" ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "แบบสอบถามก่อนแชท",
"BUSINESS_HOURS": "เวลาทำการ",
"WIDGET_BUILDER": "เครื่องมือสร้าง Widget",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "ตั้งค่า",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "เปิดใช้งานกล่องรวมอีเมล",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "เปิดหรือปิดการใช้งานกล่องรวมอีเมลสำหรับการสนทนาใหม่",
"AUTO_ASSIGNMENT": "เปิดการมอบหมายงานอัตโนมัติ",
- "ENABLE_CSAT": "เปิด CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "เปิดหรือปิด CSAT(แบบสอบถามความพีงพอใจลูกค้า) หลังจากเสร็จสิ้นการสนทนา",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "เปิดให้มีการสนทนาต่อทางอีเมลได้",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "การสนทนาจะสามารถดำเนินการต่อผ่านทางอีเมลได้ หากลูกค้าให้อีเมลไว้",
@@ -568,6 +577,32 @@
"LABEL": "ลูกค้าควรให้ชื่อและอีเมลก่อนเริ่มสนทนา"
}
},
+ "CSAT": {
+ "TITLE": "เปิด CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "ข้อความ",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "มี",
+ "DOES_NOT_CONTAINS": "ไม่มี"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "ตั้งค่าความพร้อมในการให้บริการ",
"SUBTITLE": "ตั้งค่าความพร้อมในการให้บริการของคุณบน livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "อีเมล์",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "ช่อง API"
+ "API": "ช่อง API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/th/integrations.json b/app/javascript/dashboard/i18n/locale/th/integrations.json
index 6377f0877..64697d7ea 100644
--- a/app/javascript/dashboard/i18n/locale/th/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/th/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "อัปเดตข้อความแล้ว",
"WEBWIDGET_TRIGGERED": "Live chat widget ถูกเปิดโดยผู้ใช้งาน",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "ยกเลิก"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "ส่วข้อความ...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "พิมพ์ข้อความ...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "อัพเดท",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "ฟีเจอร์",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "ชื่อ",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "คำอธิบาย",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "ฟีเจอร์",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/th/macros.json b/app/javascript/dashboard/i18n/locale/th/macros.json
index 8e245baac..0694aaa22 100644
--- a/app/javascript/dashboard/i18n/locale/th/macros.json
+++ b/app/javascript/dashboard/i18n/locale/th/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "ระงับการสนทนา",
+ "SNOOZE_CONVERSATION": "พักการสนทนา",
+ "RESOLVE_CONVERSATION": "เสร็จสิ้นการสนทนา",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/th/report.json b/app/javascript/dashboard/i18n/locale/th/report.json
index a43255440..d2f0eacff 100644
--- a/app/javascript/dashboard/i18n/locale/th/report.json
+++ b/app/javascript/dashboard/i18n/locale/th/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "ภาพรวมป้ายกำกับ",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "กำลังโหลดแผนภูมิข้อมูล",
"NO_ENOUGH_DATA": "ข้อมูลที่เราได้รับไม่เพียงพอต่อการสร้างรายงาน โปรดลองใหม่อีกครั้งในภายหน้า",
"DOWNLOAD_LABEL_REPORTS": "ดาวน์โหลดรายงานป้ายกำกับ",
@@ -559,6 +560,7 @@
"INBOX": "กล่องข้อความ",
"AGENT": "พนักงาน",
"TEAM": "ทีม",
+ "LABEL": "ป้ายกำกับ",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/th/search.json b/app/javascript/dashboard/i18n/locale/th/search.json
index adfa8d3df..7332709db 100644
--- a/app/javascript/dashboard/i18n/locale/th/search.json
+++ b/app/javascript/dashboard/i18n/locale/th/search.json
@@ -4,12 +4,14 @@
"ALL": "ทั้งหมด",
"CONTACTS": "ผู้ติดต่อ",
"CONVERSATIONS": "การสนทนา",
- "MESSAGES": "ข้อความทั้งหมด"
+ "MESSAGES": "ข้อความทั้งหมด",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "ผู้ติดต่อ",
"CONVERSATIONS": "การสนทนา",
- "MESSAGES": "ข้อความทั้งหมด"
+ "MESSAGES": "ข้อความทั้งหมด",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/th/settings.json b/app/javascript/dashboard/i18n/locale/th/settings.json
index 60e733f31..50e3b4063 100644
--- a/app/javascript/dashboard/i18n/locale/th/settings.json
+++ b/app/javascript/dashboard/i18n/locale/th/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "คุณสามารถใช้ token นี้เชื่อมต่อกับ API ได้",
- "COPY": "คัดลอก"
+ "COPY": "คัดลอก",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "ออฟไลน์"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "อีเมลของคุณ",
@@ -280,6 +286,7 @@
"REPORTS": "รายงาน",
"SETTINGS": "ตั้งค่า",
"CONTACTS": "ผู้ติดต่อ",
+ "ACTIVE": "ใช้งานอยู่",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "ชื่อบริษัท",
"PLACEHOLDER": "ชื่อบริษัท"
},
- "SUBMIT": "ส่ง"
+ "SUBMIT": "ส่ง",
+ "CANCEL": "ยกเลิก"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/tl/agentBots.json b/app/javascript/dashboard/i18n/locale/tl/agentBots.json
index 41b8fcb1b..d3a0bb991 100644
--- a/app/javascript/dashboard/i18n/locale/tl/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/tl/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Delete",
"TITLE": "Delete bot",
- "SUBMIT": "Delete",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancel",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tl/auditLogs.json b/app/javascript/dashboard/i18n/locale/tl/auditLogs.json
index 8194c667c..f85ad2a3e 100644
--- a/app/javascript/dashboard/i18n/locale/tl/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/tl/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tl/automation.json b/app/javascript/dashboard/i18n/locale/tl/automation.json
index bb4946416..86ec0b58b 100644
--- a/app/javascript/dashboard/i18n/locale/tl/automation.json
+++ b/app/javascript/dashboard/i18n/locale/tl/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tl/components.json b/app/javascript/dashboard/i18n/locale/tl/components.json
index c7230b1fc..e44c6e039 100644
--- a/app/javascript/dashboard/i18n/locale/tl/components.json
+++ b/app/javascript/dashboard/i18n/locale/tl/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tl/contact.json b/app/javascript/dashboard/i18n/locale/tl/contact.json
index f5925eda3..b4d640f7f 100644
--- a/app/javascript/dashboard/i18n/locale/tl/contact.json
+++ b/app/javascript/dashboard/i18n/locale/tl/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Confirm Deletion",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/tl/conversation.json b/app/javascript/dashboard/i18n/locale/tl/conversation.json
index 6cfe9d082..c047f17ad 100644
--- a/app/javascript/dashboard/i18n/locale/tl/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/tl/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/tl/general.json b/app/javascript/dashboard/i18n/locale/tl/general.json
index 78e97db90..129fb239a 100644
--- a/app/javascript/dashboard/i18n/locale/tl/general.json
+++ b/app/javascript/dashboard/i18n/locale/tl/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tl/generalSettings.json b/app/javascript/dashboard/i18n/locale/tl/generalSettings.json
index 9ad4e4b57..c0c4d247d 100644
--- a/app/javascript/dashboard/i18n/locale/tl/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/tl/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "Cancel",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/tl/helpCenter.json b/app/javascript/dashboard/i18n/locale/tl/helpCenter.json
index 8fa64108b..f437b83d9 100644
--- a/app/javascript/dashboard/i18n/locale/tl/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/tl/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json
index 20f5ebed3..cc0fe4b33 100644
--- a/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tl/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tl/integrations.json b/app/javascript/dashboard/i18n/locale/tl/integrations.json
index e2ee60103..43de9b65d 100644
--- a/app/javascript/dashboard/i18n/locale/tl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/tl/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Cancel"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/tl/macros.json b/app/javascript/dashboard/i18n/locale/tl/macros.json
index 95e02fe94..d22744190 100644
--- a/app/javascript/dashboard/i18n/locale/tl/macros.json
+++ b/app/javascript/dashboard/i18n/locale/tl/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tl/report.json b/app/javascript/dashboard/i18n/locale/tl/report.json
index 294ca2e7b..7c42fdfba 100644
--- a/app/javascript/dashboard/i18n/locale/tl/report.json
+++ b/app/javascript/dashboard/i18n/locale/tl/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/tl/search.json b/app/javascript/dashboard/i18n/locale/tl/search.json
index 3cb566813..e8510ab97 100644
--- a/app/javascript/dashboard/i18n/locale/tl/search.json
+++ b/app/javascript/dashboard/i18n/locale/tl/search.json
@@ -4,12 +4,14 @@
"ALL": "All",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/tl/settings.json b/app/javascript/dashboard/i18n/locale/tl/settings.json
index 7108c1610..219041d75 100644
--- a/app/javascript/dashboard/i18n/locale/tl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/tl/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/agentBots.json b/app/javascript/dashboard/i18n/locale/tr/agentBots.json
index 806ed6652..9b4c0b500 100644
--- a/app/javascript/dashboard/i18n/locale/tr/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/tr/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Botlar",
"LOADING_EDITOR": "Editör Yükleniyor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Temsilci botları ekibinizin en harika üyeleri gibidir. Küçük işleri halledebilirler, böylece önemli işlere odaklanabilirsiniz. Onları deneyin. Botlarınızı bu sayfadan yönetebilir veya 'Bot Ekle' butonunu kullanarak yenilerini oluşturabilirsiniz.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot Adı",
- "PLACEHOLDER": "Botunuza bir ad verin.",
- "ERROR": "Bot adı zorunludur."
- },
- "DESCRIPTION": {
- "LABEL": "Bot açıklaması",
- "PLACEHOLDER": "Bu bot ne iş yapar?"
- },
- "BOT_CONFIG": {
- "ERROR": "Lütfen yukarıdaki bot yapılandırmanızı girin.",
- "API_ERROR": "CSML yapılandırmanız geçersiz. Lütfen düzeltin ve tekrar deneyin."
- },
- "SUBMIT": "Doğrula ve kaydet"
+ "GLOBAL_BOT": "Sistem botu",
+ "GLOBAL_BOT_BADGE": "Sistem",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatarı başarıyla silindi",
+ "ERROR_DELETE": "Bot avatarı silinirken hata oluştu, lütfen tekrar deneyin"
},
"BOT_CONFIGURATION": {
"TITLE": "Bir temsilci botu seçin",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Bot seçin"
},
"ADD": {
- "TITLE": "Yeni botu yapılandır",
+ "TITLE": "Bot Ekle",
"CANCEL_BUTTON_TEXT": "İptal Et",
"API": {
"SUCCESS_MESSAGE": "Bot başarıyla eklendi.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Bot bulunamadı. 'Yeni botu yapılandır' düğmesine tıklayarak bir bot oluşturabilirsiniz ↗",
+ "404": "Bot bulunamadı. 'Bot Ekle' butonuna tıklayarak bir bot oluşturabilirsiniz.",
"LOADING": "Botlar alınıyor...",
- "TYPE": "Bot türü"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Detayları",
+ "URL": "Webhook URL'si"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Sil",
"TITLE": "Botu sil",
- "SUBMIT": "Sil",
- "CANCEL_BUTTON_TEXT": "İptal Et",
- "DESCRIPTION": "Bu botu silmek istediğinize emin misiniz? Bu işlem geri alınamaz.",
+ "CONFIRM": {
+ "TITLE": "Silmeyi onayla",
+ "MESSAGE": "{name} silmek istediğinizden emin misiniz?",
+ "YES": "Evet, Sil",
+ "NO": "Hayır, Sakla"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot başarıyla silindi.",
"ERROR_MESSAGE": "Bot silinemedi. Lütfen tekrar deneyin."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Düzenle",
- "LOADING": "Botlar alınıyor...",
"TITLE": "Botu düzenle",
- "CANCEL_BUTTON_TEXT": "İptal Et",
"API": {
"SUCCESS_MESSAGE": "Bot başarıyla güncellendi.",
"ERROR_MESSAGE": "Bot güncellenemedi. Lütfen tekrar deneyin."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Erişim Jetonu",
+ "DESCRIPTION": "Erişim anahtarını kopyalayın ve güvenli bir yerde saklayın",
+ "COPY_SUCCESSFUL": "Erişim anahtarı panoya kopyalandı",
+ "RESET_SUCCESS": "Erişim anahtarı başarıyla yeniden oluşturuldu",
+ "RESET_ERROR": "Erişim anahtarı yeniden oluşturulamadı. Lütfen tekrar deneyin"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatarı"
+ },
+ "NAME": {
+ "LABEL": "Bot Adı",
+ "PLACEHOLDER": "Bot adını girin",
+ "REQUIRED": "Bot adı zorunludur"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Açıklama",
+ "PLACEHOLDER": "Bu bot ne iş yapar?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL'si",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL'si gereklidir"
+ },
+ "ERRORS": {
+ "NAME": "Bot adı zorunludur",
+ "URL": "Webhook URL'si gereklidir",
+ "VALID_URL": "Lütfen http:// veya https:// ile başlayan geçerli bir URL girin"
+ },
+ "CANCEL": "İptal Et",
+ "CREATE": "Bot Oluştur",
+ "UPDATE": "Botu Güncelle"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Webhook botunu özel hizmetlerinizle entegre etmek için yapılandırın. Bot, sohbetlerden gelen olayları alacak ve işleyebilecek."
+ },
"TYPES": {
- "WEBHOOK": "Webhook botu",
- "CSML": "CSML botu"
+ "WEBHOOK": "Webhook botu"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tr/auditLogs.json b/app/javascript/dashboard/i18n/locale/tr/auditLogs.json
index 07c108a1d..98eb2372c 100644
--- a/app/javascript/dashboard/i18n/locale/tr/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/tr/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} #{id} numaralı sohbeti sildi"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tr/automation.json b/app/javascript/dashboard/i18n/locale/tr/automation.json
index f32cd11cb..eda09b867 100644
--- a/app/javascript/dashboard/i18n/locale/tr/automation.json
+++ b/app/javascript/dashboard/i18n/locale/tr/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Hiç"
+ "NONE_OPTION": "Hiç",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Görüşme Oluşturuldu",
+ "CONVERSATION_UPDATED": "Görüşme Güncellendi",
+ "MESSAGE_CREATED": "Mesaj Oluşturuldu",
+ "CONVERSATION_OPENED": "Sohbet Açıldı"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Temsilciye Ata",
+ "ASSIGN_TEAM": "Bir Ekibe Ata",
+ "ADD_LABEL": "Etiket Ekle",
+ "REMOVE_LABEL": "Etiketi Kaldır",
+ "SEND_EMAIL_TO_TEAM": "Ekibe E-posta Gönder",
+ "SEND_EMAIL_TRANSCRIPT": "E-posta Dökümü Gönder",
+ "MUTE_CONVERSATION": "Konuşmayı Sessize Al",
+ "SNOOZE_CONVERSATION": "Konuşmayı Ertele",
+ "RESOLVE_CONVERSATION": "Görüşmeyi çöz",
+ "SEND_WEBHOOK_EVENT": "Webhook Olayı Gönder",
+ "SEND_ATTACHMENT": "Ek Gönder",
+ "SEND_MESSAGE": "Mesaj Gönder",
+ "CHANGE_PRIORITY": "Önceliği Değiştir",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Mesaj Türü",
+ "MESSAGE_CONTAINS": "Mesaj İçerir",
+ "EMAIL": "E-Posta",
+ "INBOX": "Gelen Kutusu",
+ "CONVERSATION_LANGUAGE": "Sohbet Dili",
+ "PHONE_NUMBER": "Telefon Numarası",
+ "STATUS": "Durum",
+ "BROWSER_LANGUAGE": "Tarayıcı Dili",
+ "MAIL_SUBJECT": "E-posta Konusu",
+ "COUNTRY_NAME": "Ülke",
+ "REFERER_LINK": "Yönlendiren Bağlantı",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Ekip",
+ "PRIORITY": "Öncelik"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tr/components.json b/app/javascript/dashboard/i18n/locale/tr/components.json
index a6611ad40..69b9ad42f 100644
--- a/app/javascript/dashboard/i18n/locale/tr/components.json
+++ b/app/javascript/dashboard/i18n/locale/tr/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Daha Fazla",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Dakika",
+ "HOURS": "Saat",
+ "DAYS": "Gün",
+ "PLACEHOLDER": "Süre girin"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tr/contact.json b/app/javascript/dashboard/i18n/locale/tr/contact.json
index f190e6ece..ec2724c03 100644
--- a/app/javascript/dashboard/i18n/locale/tr/contact.json
+++ b/app/javascript/dashboard/i18n/locale/tr/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Kişiler",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Aktif kişiler",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Mesaj",
"SEND_MESSAGE": "Mesajı Gönder",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "Bu işlem kalıcıdır ve geri alınamaz.",
+ "BUTTON": "Şimdi sil"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Kişiyi Sil",
"DELETE_DIALOG": {
"TITLE": "Silmeyi onayla",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Bu kişiyi silmek istediğinizden emin misiniz?",
"CONFIRM": "Evet, Sil",
"API": {
"SUCCESS_MESSAGE": "Kişi başarıyla silindi",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "Sen",
"SAVE": "Save note",
+ "EXPAND": "Genişlet",
+ "COLLAPSE": "Daralt",
+ "NO_NOTES": "Not yok, kişi detayları sayfasından not ekleyebilirsiniz.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Aramanızla eşleşen kişi bulunamadı 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "Şu anda aktif kişi yok 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/conversation.json b/app/javascript/dashboard/i18n/locale/tr/conversation.json
index 787202f7f..e37ae0362 100644
--- a/app/javascript/dashboard/i18n/locale/tr/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/tr/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Sohbetler Yükleniyor\n",
"CANNOT_REPLY": "Nedeniyle cevap veremezsiniz",
"24_HOURS_WINDOW": "24 saat mesaj penceresi kısıtlaması",
+ "API_HOURS_WINDOW": "Bu sohbete yalnızca {hours} saat içinde yanıt verebilirsiniz",
"NOT_ASSIGNED_TO_YOU": "Bu görüşme size atanmamış. Bu konuşmayı kendinize atamak ister misiniz?",
"ASSIGN_TO_ME": "Bana ata",
"TWILIO_WHATSAPP_CAN_REPLY": "Bu konuşmaya yalnızca şablon mesaj kullanarak yanıt verebilirsiniz, çünkü",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 saat mesaj penceresi kısıtlaması",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "Bu Instagram hesabı yeni Instagram kanal gelen kutusuna taşındı. Tüm yeni mesajlar orada görünecek. Bu sohbetten artık mesaj gönderemezsiniz.",
"REPLYING_TO": "Cevap veriyorsun:",
"REMOVE_SELECTION": "Seçimi Kaldır",
"DOWNLOAD": "İndir",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Çözüldü",
"REOPEN_ACTION": "Yeniden aç",
"OPEN_ACTION": "Açık",
+ "MORE_ACTIONS": "Daha fazla işlem",
"OPEN": "Devamı",
"CLOSE": "Kapat",
"DETAILS": "detaylar",
@@ -115,6 +118,11 @@
"FAILED": "Öncelik değiştirilemedi. Lütfen tekrar deneyin."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "#{conversationId} numaralı sohbeti sil",
+ "DESCRIPTION": "Bu sohbeti silmek istediğinizden emin misiniz?",
+ "CONFIRM": "Sil"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Beklemede olarak işaretle",
"RESOLVED": "Çözüldü olarak işaretle",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Etiket ata",
"AGENTS_LOADING": "Temsilciler Yükleniyor...",
"ASSIGN_TEAM": "Takım ata",
+ "DELETE": "Sohbeti sil",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Sohbet kimliği {conversationId} \"{agentName}\" tarafından atanmış",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Etiket başarıyla atandı",
"ASSIGN_LABEL_FAILED": "Etiket ataması yapılamadı",
"CHANGE_TEAM": "Takım değişti",
+ "SUCCESS_DELETE_CONVERSATION": "Sohbet başarıyla silindi",
+ "FAIL_DELETE_CONVERSATION": "Sohbet silinemedi! Tekrar deneyin",
"FILE_SIZE_LIMIT": "Dosya, {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB ek dosya sınırını aşıyor",
"MESSAGE_ERROR": "Bu mesaj gönderilemiyor, lütfen daha sonra tekrar deneyin",
"SENT_BY": "Tarafından gönderildi:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Konuşma Eylemleri",
"CONVERSATION_LABELS": "Konuşma Etiketleri",
"CONVERSATION_INFO": "Konuşma Bilgisi",
+ "CONTACT_NOTES": "Kişi Notları",
"CONTACT_ATTRIBUTES": "İletişim Nitelikleri",
"PREVIOUS_CONVERSATION": "Önceki Konuşmalar",
"MACROS": "Kısayollar",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/general.json b/app/javascript/dashboard/i18n/locale/tr/general.json
index 862c4388a..57cbab2a8 100644
--- a/app/javascript/dashboard/i18n/locale/tr/general.json
+++ b/app/javascript/dashboard/i18n/locale/tr/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Ara",
"EMPTY_STATE": "Kayıt bulunamadı"
- }
+ },
+ "CLOSE": "Kapat"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tr/generalSettings.json b/app/javascript/dashboard/i18n/locale/tr/generalSettings.json
index 1984a2a66..29f7f79bc 100644
--- a/app/javascript/dashboard/i18n/locale/tr/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/tr/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "Sohbet sınırını aştınız. Hacker planı yalnızca 500 sohbete izin verir.",
+ "INBOXES": "Gelen kutusu sınırını aştınız. Hacker planı yalnızca web sitesi canlı sohbetini destekler. E-posta, WhatsApp gibi ek gelen kutuları ücretli plan gerektirir.",
+ "AGENTS": "Temsilci sınırını aştınız. Hacker planı yalnızca 2 temsilciye izin verir.",
+ "NON_ADMIN": "Tüm özellikleri kullanmaya devam etmek için lütfen yöneticinizle iletişime geçin ve planı yükseltin."
+ },
"TITLE": "Hesap Ayarları",
"SUBMIT": "Ayarları Güncelle",
"BACK": "Geri",
@@ -8,6 +14,26 @@
"ERROR": "Ayarlar güncellenemedi, lütfen tekrar deneyin!",
"SUCCESS": "Hesap ayarları başarıyla güncellendi"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Hesabınızı silin",
+ "NOTE": "Hesabınızı sildikten sonra tüm verileriniz silinecektir.",
+ "BUTTON_TEXT": "Hesabınızı Silin",
+ "CONFIRM": {
+ "TITLE": "Hesabı Sil",
+ "MESSAGE": "Hesabınızı silmek geri alınamaz. Kalıcı olarak silmek istediğinizi onaylamak için aşağıya hesap adınızı girin.",
+ "BUTTON_TEXT": "Sil",
+ "DISMISS": "İptal Et",
+ "PLACE_HOLDER": "{accountName} yazarak onaylayın"
+ },
+ "SUCCESS": "Hesap silinmek üzere işaretlendi",
+ "FAILURE": "Hesap silinemedi, tekrar deneyin!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Hesap silinmek üzere planlandı",
+ "MESSAGE_MANUAL": "Bu hesap {deletionDate} tarihinde silinmek üzere planlandı. Bu, bir yönetici tarafından talep edildi. Bu tarihten önce silmeyi iptal edebilirsiniz.",
+ "MESSAGE_INACTIVITY": "Bu hesap, hesap etkinliği olmadığı için {deletionDate} tarihinde silinmek üzere planlandı. Bu tarihten önce silmeyi iptal edebilirsiniz.",
+ "CLEAR_BUTTON": "Planlanan Silmeyi İptal Et"
+ }
+ },
"FORM": {
"ERROR": "Lütfen formdaki hataları düzeltin",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Hesap Kimliği",
"NOTE": "API tabanlı bir entegrasyon oluşturuyorsanız bu kimlik gereklidir"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Sohbetleri otomatik çöz",
+ "NOTE": "Bu yapılandırma, belirli bir süre etkinlik olmadığında sohbeti otomatik olarak çözmenizi sağlar.",
+ "DURATION": {
+ "LABEL": "Etkinliksizlik süresi",
+ "HELP": "Sohbetin otomatik olarak çözüleceği etkinliksizlik süresi",
+ "PLACEHOLDER": "30",
+ "ERROR": "Otomatik çözme süresi 10 dakika ile 999 gün arasında olmalıdır",
+ "API": {
+ "SUCCESS": "Otomatik çözme ayarları başarıyla güncellendi",
+ "ERROR": "Otomatik çözme ayarları güncellenemedi"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Özel otomatik çözüm mesajı",
+ "PLACEHOLDER": "Sohbet, 15 gün etkinlik olmadığı için sistem tarafından çözüldü olarak işaretlendi",
+ "HELP": "Sohbet otomatik olarak çözüldükten sonra müşteriye gönderilen mesaj"
+ },
+ "PREFERENCES": "Tercihler",
+ "LABEL": {
+ "LABEL": "Otomatik çözümden sonra etiket ekle",
+ "PLACEHOLDER": "Etiket seç"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Temsilci yanıtı bekleyen sohbetleri atla"
+ },
+ "UPDATE_BUTTON": "Değişiklikleri Kaydet"
+ },
"NAME": {
"LABEL": "Hesap Adı",
"PLACEHOLDER": "Hesap adınız",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Şirketinizin destek e-postası",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Yanıtsız sohbetleri hariç tut",
+ "HELP": "Etkinleştirildiğinde, sistem hâlâ temsilci yanıtı bekleyen sohbetleri çözmeyi atlayacaktır."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Sesli Mesajları Yazıya Döktür",
+ "NOTE": "Sohbetlerdeki sesli mesajları otomatik olarak yazıya dökün. Bir sesli mesaj gönderildiğinde veya alındığında bir metin dökümü oluşturun ve mesajın yanında gösterin.",
+ "API": {
+ "SUCCESS": "Sesli mesaj transkripsiyon ayarı başarıyla güncellendi",
+ "ERROR": "Sesli yazıya dökme ayarı güncellenemedi"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Etkinlik yoksa, bir biletin otomatik olarak çözülmesi gereken gün sayısı",
+ "LABEL": "Çözüm için etkinliksizlik süresi",
+ "HELP": "Bir sohbette etkinlik yoksa otomatik çözüm için süre",
"PLACEHOLDER": "30",
- "ERROR": "Lütfen geçerli bir otomatik çözüm süresi girin (minimum 1 gün ve maksimum 999 gün)"
+ "ERROR": "Otomatik çözme süresi 10 dakika ile 999 gün arasında olmalıdır",
+ "API": {
+ "SUCCESS": "Otomatik çözme ayarları başarıyla güncellendi",
+ "ERROR": "Otomatik çözme ayarları güncellenemedi"
+ },
+ "UPDATE_BUTTON": "Güncelleme",
+ "MESSAGE_LABEL": "Özel çözüm mesajı",
+ "MESSAGE_PLACEHOLDER": "Sohbet, 15 gün etkinlik olmadığı için sistem tarafından çözüldü olarak işaretlendi",
+ "MESSAGE_HELP": "Bu mesaj, bir sohbet sistem tarafından etkinliksizlik nedeniyle otomatik olarak çözüldüğünde müşteriye gönderilir."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Hesabınız için e-posta ile iletişim devre dışı bırakıldı.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "{latestChatwootVersion} chatwoot sürümü indirilebilir. Lütfen sürümü güncelleyin.",
"LEARN_MORE": "Daha Fazla",
"PAYMENT_PENDING": "Ödemeniz bekliyor. Devam etmek için ödeme bilgilerinizi güncelleyin.",
+ "UPGRADE": "Chatwoot'u kullanmaya devam etmek için yükseltin",
"LIMITS_UPGRADE": "Hesabınız kullanım sınırlarını aştı, lütfen Chatwoot'u kullanmaya devam etmek için planınızı yükseltin",
"OPEN_BILLING": "Fatura Detayları"
},
diff --git a/app/javascript/dashboard/i18n/locale/tr/helpCenter.json b/app/javascript/dashboard/i18n/locale/tr/helpCenter.json
index a3fe8f8d0..2ab2b274d 100644
--- a/app/javascript/dashboard/i18n/locale/tr/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/tr/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug gereklidir"
+ "ERROR": "Slug gereklidir",
+ "FORMAT_ERROR": "Lütfen geçerli bir kısa ad girin, örn: kullanici-rehberi"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json
index 2a71992a7..7291523dc 100644
--- a/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/tr/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Gelen Kutusu Adı",
"ADD_NAME": "Gelen kutunuza bir isim ekleyin",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Bir değer seçin"
+ "PICK_A_VALUE": "Bir değer seçin",
+ "CREATE_INBOX": "Gelen Kutusu Oluştur"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Instagram ile devam et",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Instagram profilinizi bağlayın",
+ "HELP": "Bu Instagram hesabı yeni Instagram kanal gelen kutusuna taşındı. Artık bu gelen kutusundan Instagram mesajı gönderip alamayacaksınız ",
+ "ERROR_MESSAGE": "Instagram'a bağlanırken bir hata oluştu, lütfen tekrar deneyin",
+ "ERROR_AUTH": "Instagram'a bağlanırken bir hata oluştu, lütfen tekrar deneyin",
+ "NEW_INBOX_SUGGESTION": "Bu Instagram hesabı daha önce farklı bir gelen kutusuna bağlıydı ve şimdi buraya taşındı. Tüm yeni mesajlar burada görünecek. Eski gelen kutusu artık bu hesap için mesaj gönderip alamayacak.",
+ "DUPLICATE_INBOX_BANNER": "Bu Instagram hesabı yeni Instagram kanal gelen kutusuna taşındı. Artık bu gelen kutusundan Instagram mesajı gönderip alamayacaksınız."
},
"TWITTER": {
"HELP": "Twitter profilinizi bir kanal olarak eklemek için, 'Twitter ile Giriş Yap'ı tıklayarak Twitter Profilinizi doğrulamanız gerekir.",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Sohbet Öncesi Form",
"BUSINESS_HOURS": "İş Saatleri",
"WIDGET_BUILDER": "Widget Oluşturucu",
- "BOT_CONFIGURATION": "Bot Yapılandırma"
+ "BOT_CONFIGURATION": "Bot Yapılandırma",
+ "CSAT": "CSAT"
},
"SETTINGS": "Ayarlar",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "E-posta toplama kutusunu etkinleştir",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Yeni konuşmalarda e-posta toplama kutusunu etkinleştir veya devre dışı bırak",
"AUTO_ASSIGNMENT": "Otomatik atamayı etkinleştir",
- "ENABLE_CSAT": "CSAT'yi etkinleştir",
"SENDER_NAME_SECTION": "E-postada Ajan Adını Etkinleştir",
- "ENABLE_CSAT_SUB_TEXT": "Bir konuşma çözüldükten sonra Müşteri Memnuniyeti Anketi (CSAT) etkinleştir/devre dışı bırak",
"SENDER_NAME_SECTION_TEXT": "E-postada Ajanın adını göstermeyi/Devre dışı bırakmayı etkinleştirin, devre dışı bırakıldığında iş adını gösterir",
"ENABLE_CONTINUITY_VIA_EMAIL": "E-posta aracılığıyla konuşma sürekliliğini etkinleştir",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "E-posta adresi mevcut ise konuşmalar e-posta aracılığıyla devam eder.",
@@ -568,6 +577,32 @@
"LABEL": "Ziyaretçilerin sohbeti başlamadan önce ad ve e-posta adresi sağlaması gerekmektedir"
}
},
+ "CSAT": {
+ "TITLE": "CSAT'yi etkinleştir",
+ "SUBTITLE": "Müşterilerin destek deneyimleri hakkında ne hissettiklerini anlamak için sohbetlerin sonunda otomatik olarak CSAT anketleri başlatın. Memnuniyet eğilimlerini takip edin ve zaman içinde iyileştirme alanlarını belirleyin.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Görüntüleme türü"
+ },
+ "MESSAGE": {
+ "LABEL": "Mesaj",
+ "PLACEHOLDER": "Form ile kullanıcılara göstermek için bir mesaj girin"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Anket kuralı",
+ "DESCRIPTION_PREFIX": "Sohbet olursa anketi gönder",
+ "DESCRIPTION_SUFFIX": "etiketlerden herhangi biri",
+ "OPERATOR": {
+ "CONTAINS": "i̇çerir",
+ "DOES_NOT_CONTAINS": "i̇çermez"
+ },
+ "SELECT_PLACEHOLDER": "etiketleri seç"
+ },
+ "NOTE": "Not: CSAT anketleri her sohbet için yalnızca bir kez gönderilir",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT ayarları başarıyla güncellendi",
+ "ERROR_MESSAGE": "CSAT ayarları güncellenemedi. Lütfen daha sonra tekrar deneyin."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Uygunluk Durumunuzu Ayarlayın",
"SUBTITLE": "Canlı sohbet widget'ınızda uygunluk durumunuzu ayarlayın",
@@ -753,7 +788,8 @@
"EMAIL": "E-Posta",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Kanalı"
+ "API": "API Kanalı",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tr/integrations.json b/app/javascript/dashboard/i18n/locale/tr/integrations.json
index 246c5ca53..12c7fc99c 100644
--- a/app/javascript/dashboard/i18n/locale/tr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/tr/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Mesaj Güncellendi",
"WEBWIDGET_TRIGGERED": "Kullanıcı tarafından canlı sohbet widget'ı açıldı",
"CONTACT_CREATED": "Kişi Oluşturuldu",
- "CONTACT_UPDATED": "Kişi Güncellendi"
+ "CONTACT_UPDATED": "Kişi Güncellendi",
+ "CONVERSATION_TYPING_ON": "Sohbet Yazıyor Açık",
+ "CONVERSATION_TYPING_OFF": "Sohbet Yazıyor Kapalı"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Evet, sil",
"CANCEL": "İptal Et"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Copilot ile başlayın",
+ "KICK_OFF_MESSAGE": "Hızlı bir özet mi lazım, geçmiş sohbetleri mi kontrol etmek istiyorsunuz ya da daha iyi bir yanıt mı yazmak istiyorsunuz? Copilot işleri hızlandırmak için burada.",
"SEND_MESSAGE": "Mesajı Gönder...",
+ "EMPTY_MESSAGE": "Yanıt oluşturulurken bir hata oluştu. Lütfen tekrar deneyin.",
"LOADER": "Captain is thinking",
"YOU": "Sen",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Adımları göster",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Bu sohbeti özetle",
+ "CONTENT": "Müşteri ile destek temsilcisi arasında tartışılan ana noktaları özetle; müşterinin endişeleri, soruları ve temsilcinin sunduğu çözümler veya yanıtlar dahil"
+ },
+ "SUGGEST": {
+ "LABEL": "Bir yanıt öner",
+ "CONTENT": "Müşterinin sorusunu analiz edin ve endişelerini veya sorularını etkili bir şekilde ele alan bir yanıt taslağı oluşturun. Yanıtın açık, öz ve bilgilendirici olmasını sağlayın."
+ },
+ "RATE": {
+ "LABEL": "Bu sohbeti değerlendir",
+ "CONTENT": "Sohbetin müşterinin ihtiyaçlarını ne kadar karşıladığını gözden geçirin. Ton, açıklık ve etkililik açısından 5 üzerinden bir puan verin."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Yüksek öncelikli sohbetler",
+ "CONTENT": "Tüm yüksek öncelikli açık sohbetlerin bir özetini verin. Sohbet kimliği, müşteri adı (varsa), son mesaj içeriği ve atanan temsilciyi ekleyin. Gerekirse duruma göre gruplayın."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Kişileri listele",
+ "CONTENT": "İlk 10 kişiyi göster. Ad, e-posta veya telefon numarası (varsa), son görülme zamanı ve etiketler (varsa) dahil olsun."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Sen",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Mesajınız...",
+ "HEADER": "Oyun Alanı",
+ "DESCRIPTION": "Bu oyun alanını asistanınıza mesaj göndermek ve yanıtlarının doğru, hızlı ve beklediğiniz tonda olup olmadığını kontrol etmek için kullanın.",
+ "CREDIT_NOTE": "Buradan gönderilen mesajlar Captain kredilerinize sayılacaktır."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "Hesabınızda kullanılabilir asistan yok.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Güncelleme",
+ "SECTIONS": {
+ "BASIC_INFO": "Temel Bilgiler",
+ "SYSTEM_MESSAGES": "Sistem Mesajları",
+ "INSTRUCTIONS": "Talimatlar",
+ "FEATURES": "Özellikleri",
+ "TOOLS": "Araçlar "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "İsim",
+ "PLACEHOLDER": "Asistan adını girin",
+ "ERROR": "Ad gereklidir"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Yanıt Sıcaklığı",
+ "DESCRIPTION": "Asistanın yanıtlarının ne kadar yaratıcı veya kısıtlayıcı olması gerektiğini ayarlayın. Düşük değerler daha odaklı ve deterministik yanıtlar üretir, yüksek değerler ise daha yaratıcı ve çeşitli yanıtlar sağlar."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Açıklama",
+ "PLACEHOLDER": "Asistan açıklamasını girin",
+ "ERROR": "Açıklama gereklidir"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Ürün adını girin",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Karşılama Mesajı",
+ "PLACEHOLDER": "Karşılama mesajı girin"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Aktarım Mesajı",
+ "PLACEHOLDER": "Aktarım mesajı girin"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Çözüm Mesajı",
+ "PLACEHOLDER": "Çözüm mesajı girin"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Talimatlar",
+ "PLACEHOLDER": "Asistan için talimatları girin"
+ },
"FEATURES": {
"TITLE": "Özellikleri",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Asistan bulunamadı. Lütfen tekrar deneyin."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/tr/macros.json b/app/javascript/dashboard/i18n/locale/tr/macros.json
index 42e4d9c85..8535a86ab 100644
--- a/app/javascript/dashboard/i18n/locale/tr/macros.json
+++ b/app/javascript/dashboard/i18n/locale/tr/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Eylem parametreleri gereklidir",
"ATLEAST_ONE_CONDITION_REQUIRED": "En az bir koşul gereklidir",
"ATLEAST_ONE_ACTION_REQUIRED": "En az bir eylem gereklidir"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Bir Ekibe Ata",
+ "ASSIGN_AGENT": "Bir Temsilci Ata",
+ "ADD_LABEL": "Etiket Ekle",
+ "REMOVE_LABEL": "Etiketi Kaldır",
+ "REMOVE_ASSIGNED_TEAM": "Atanan Ekibi Kaldır",
+ "SEND_EMAIL_TRANSCRIPT": "E-posta Dökümü Gönder",
+ "MUTE_CONVERSATION": "Konuşmayı Sessize Al",
+ "SNOOZE_CONVERSATION": "Konuşmayı Ertele",
+ "RESOLVE_CONVERSATION": "Görüşmeyi çöz",
+ "SEND_ATTACHMENT": "Ek Gönder",
+ "SEND_MESSAGE": "Mesaj Gönder",
+ "CHANGE_PRIORITY": "Önceliği Değiştir",
+ "ADD_PRIVATE_NOTE": "Özel Bir Not Ekle",
+ "SEND_WEBHOOK_EVENT": "Webhook Olayı Gönder"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/tr/report.json b/app/javascript/dashboard/i18n/locale/tr/report.json
index 43f21de81..496a82156 100644
--- a/app/javascript/dashboard/i18n/locale/tr/report.json
+++ b/app/javascript/dashboard/i18n/locale/tr/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Etiketler Genel Bakış",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Grafik verileri yükleniyor...",
"NO_ENOUGH_DATA": "Rapor oluşturmak için yeterli veri yok, Lütfen daha sonra tekrar deneyin.",
"DOWNLOAD_LABEL_REPORTS": "Etiket raporlarını indir",
@@ -559,6 +560,7 @@
"INBOX": "Gelen Kutusu",
"AGENT": "Kullanıcı",
"TEAM": "Ekip",
+ "LABEL": "Etiket",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/tr/search.json b/app/javascript/dashboard/i18n/locale/tr/search.json
index 56c53f3d6..ef7724c88 100644
--- a/app/javascript/dashboard/i18n/locale/tr/search.json
+++ b/app/javascript/dashboard/i18n/locale/tr/search.json
@@ -4,12 +4,14 @@
"ALL": "Hepsi",
"CONTACTS": "Kişiler",
"CONVERSATIONS": "Konuşmalar",
- "MESSAGES": "Mesajlar"
+ "MESSAGES": "Mesajlar",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kişiler",
"CONVERSATIONS": "Konuşmalar",
- "MESSAGES": "Mesajlar"
+ "MESSAGES": "Mesajlar",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/tr/settings.json b/app/javascript/dashboard/i18n/locale/tr/settings.json
index d3136cc8c..57c563da6 100644
--- a/app/javascript/dashboard/i18n/locale/tr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/tr/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Erişim Jetonu",
"NOTE": "Bu simge, API tabanlı bir entegrasyon oluşturuyorsanız kullanılabilir",
- "COPY": "Kopyala"
+ "COPY": "Kopyala",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Emin misiniz?",
+ "CONFIRM_HINT": "Onaylamak için tekrar tıklayın",
+ "RESET_SUCCESS": "Erişim anahtarı başarıyla yeniden oluşturuldu",
+ "RESET_ERROR": "Erişim anahtarı yeniden oluşturulamadı. Lütfen tekrar deneyin"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Sesli Uyarılar",
@@ -185,7 +190,8 @@
"OFFLINE": "Çevrimdışı"
},
"SET_AVAILABILITY_SUCCESS": "Uygunluk başarıyla ayarlandı",
- "SET_AVAILABILITY_ERROR": "Uygunluk ayarlanamadı, lütfen tekrar deneyin"
+ "SET_AVAILABILITY_ERROR": "Uygunluk ayarlanamadı, lütfen tekrar deneyin",
+ "IMPERSONATING_ERROR": "Bir kullanıcıyı taklit ederken kullanılabilirlik değiştirilemez"
},
"EMAIL": {
"LABEL": "E-posta Adresiniz",
@@ -280,6 +286,7 @@
"REPORTS": "Raporlar",
"SETTINGS": "Ayarlar",
"CONTACTS": "Kişiler",
+ "ACTIVE": "Aktif",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Şirket Adı",
"PLACEHOLDER": "Şirketiniz"
},
- "SUBMIT": "Gönder"
+ "SUBMIT": "Gönder",
+ "CANCEL": "İptal Et"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/uk/agentBots.json b/app/javascript/dashboard/i18n/locale/uk/agentBots.json
index 5b0ae4368..5bdd49dd8 100644
--- a/app/javascript/dashboard/i18n/locale/uk/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/uk/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Боти",
"LOADING_EDITOR": "Завантаження редактора...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Ім'я бота",
- "PLACEHOLDER": "Дайте ім'я вашому боту.",
- "ERROR": "Ім'я бота обов'язкове."
- },
- "DESCRIPTION": {
- "LABEL": "Опис бота",
- "PLACEHOLDER": "Що робить цей бот?"
- },
- "BOT_CONFIG": {
- "ERROR": "Будь ласка, введіть вище CSML конфігурацію бота.",
- "API_ERROR": "Ваша конфігурація CSML недійсна, будь ласка, виправте її та повторіть спробу."
- },
- "SUBMIT": "Перевірити і зберегти"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "Система",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Виберіть агента - бота",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Виберіть бота"
},
"ADD": {
- "TITLE": "Налаштувати нового бота",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Скасувати",
"API": {
"SUCCESS_MESSAGE": "Бота успішно додано.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "Ботів не знайдено. Ви можете створити бота, натиснувши кнопку 'Налаштувати нового бота' ↗️",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Отримання ботів...",
- "TYPE": "Тип бота"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "URL вебхука"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Видалити",
"TITLE": "Видалити бота",
- "SUBMIT": "Видалити",
- "CANCEL_BUTTON_TEXT": "Скасувати",
- "DESCRIPTION": "Ви впевнені, що хочете видалити цього бота? Ця дія є незворотньою.",
+ "CONFIRM": {
+ "TITLE": "Підтвердження видалення",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Так, видалити",
+ "NO": "Ні, залишити"
+ },
"API": {
"SUCCESS_MESSAGE": "Бот успішно видалений.",
"ERROR_MESSAGE": "Не вдалося видалити бота. Будь ласка, спробуйте ще раз."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Редагувати",
- "LOADING": "Отримання ботів...",
"TITLE": "Редагувати бота",
- "CANCEL_BUTTON_TEXT": "Скасувати",
"API": {
"SUCCESS_MESSAGE": "Бот успішно оновлений.",
"ERROR_MESSAGE": "Не вдалося оновити бота. Будь ласка, спробуйте ще раз."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Ключ доступу",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Ім'я бота",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Ім'я бота обов'язкове"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Опис",
+ "PLACEHOLDER": "Що робить цей бот?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "URL вебхука",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Ім'я бота обов'язкове",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Скасувати",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook Бот",
- "CSML": "CSML Бот"
+ "WEBHOOK": "Webhook Бот"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/uk/auditLogs.json b/app/javascript/dashboard/i18n/locale/uk/auditLogs.json
index fb5f40c72..6f05f716c 100644
--- a/app/javascript/dashboard/i18n/locale/uk/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/uk/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/uk/automation.json b/app/javascript/dashboard/i18n/locale/uk/automation.json
index 4097b948c..63a2e78ee 100644
--- a/app/javascript/dashboard/i18n/locale/uk/automation.json
+++ b/app/javascript/dashboard/i18n/locale/uk/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Нiчого"
+ "NONE_OPTION": "Нiчого",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Розмову створено",
+ "CONVERSATION_UPDATED": "Розмову оновлено",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Заглушити розмову",
+ "SNOOZE_CONVERSATION": "Відкласти розмову",
+ "RESOLVE_CONVERSATION": "Вирішити розмову",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Змінити пріоритет",
+ "ADD_SLA": "Додати SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Вхідні",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Номер телефону",
+ "STATUS": "Статус",
+ "BROWSER_LANGUAGE": "Мова браузера",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Країна",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Команда",
+ "PRIORITY": "Пріоритет"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/uk/components.json b/app/javascript/dashboard/i18n/locale/uk/components.json
index aab333184..22395ecc6 100644
--- a/app/javascript/dashboard/i18n/locale/uk/components.json
+++ b/app/javascript/dashboard/i18n/locale/uk/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Детальніше",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/uk/contact.json b/app/javascript/dashboard/i18n/locale/uk/contact.json
index 3f01f7ccb..ba4239dcf 100644
--- a/app/javascript/dashboard/i18n/locale/uk/contact.json
+++ b/app/javascript/dashboard/i18n/locale/uk/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Контакти",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Текст повідомлення",
"SEND_MESSAGE": "Надіслати",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Видалити контакт",
"DELETE_DIALOG": {
"TITLE": "Підтвердження видалення",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Так, видалити",
"API": {
"SUCCESS_MESSAGE": "Кампанію успішно видалено",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "Ви",
"SAVE": "Save note",
+ "EXPAND": "Розширити",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Немає контактів, які відповідають вашому пошуку 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/uk/conversation.json b/app/javascript/dashboard/i18n/locale/uk/conversation.json
index 98c78ad3c..192acf812 100644
--- a/app/javascript/dashboard/i18n/locale/uk/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/uk/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Завантаження бесід",
"CANNOT_REPLY": "Ви не можете відповісти через",
"24_HOURS_WINDOW": "24-годинне обмеження на повідомлення",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Ця розмова не призначена на вас. Ви бажаєте призначити цю розмову на себе?",
"ASSIGN_TO_ME": "Призначити мені",
"TWILIO_WHATSAPP_CAN_REPLY": "Ви можете відповісти на цю розмову тільки за допомогою шаблонного повідомлення через",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24-годинне обмеження на повідомлення",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Ви відповідаєте:",
"REMOVE_SELECTION": "Видалити вибране",
"DOWNLOAD": "Звантажити",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Вирішити",
"REOPEN_ACTION": "Відкрити знову",
"OPEN_ACTION": "Відкриті",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Ще",
"CLOSE": "Закрити",
"DETAILS": "подробиці",
@@ -115,6 +118,11 @@
"FAILED": "Не вдалося змінити пріоритет. Будь ласка, спробуйте ще раз."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Видалити"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Позначити як \"В очікуванні\"",
"RESOLVED": "Позначити як вирішене",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Призначити мітку",
"AGENTS_LOADING": "Завантаження агентів...",
"ASSIGN_TEAM": "Призначити команду",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Ідентифікатор розмови {conversationId} призначено для \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Мітка успішно призначена",
"ASSIGN_LABEL_FAILED": "Призначення мітки не вдалося",
"CHANGE_TEAM": "Команда змінена",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Файл перевищує максимальний розмір вкладень {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} МБ",
"MESSAGE_ERROR": "Не вдалося надіслати повідомлення, будь ласка, повторіть спробу пізніше",
"SENT_BY": "Надіслав:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Дії при бесіді",
"CONVERSATION_LABELS": "Мітки бесіди",
"CONVERSATION_INFO": "Інформація про бесіду",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Атрибути контакту",
"PREVIOUS_CONVERSATION": "Попередні бесіди",
"MACROS": "Макрос",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/uk/general.json b/app/javascript/dashboard/i18n/locale/uk/general.json
index 4b8be2403..5215dd837 100644
--- a/app/javascript/dashboard/i18n/locale/uk/general.json
+++ b/app/javascript/dashboard/i18n/locale/uk/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Пошук",
"EMPTY_STATE": "Результатів не знайдено"
- }
+ },
+ "CLOSE": "Закрити"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/uk/generalSettings.json b/app/javascript/dashboard/i18n/locale/uk/generalSettings.json
index 4ddb93ce2..7f2440d0a 100644
--- a/app/javascript/dashboard/i18n/locale/uk/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/uk/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Налаштування облікового запису",
"SUBMIT": "Оновити налаштування",
"BACK": "Назад",
@@ -8,6 +14,26 @@
"ERROR": "Не вдалося оновити налаштування, спробуйте ще раз!",
"SUCCESS": "Налаштування облікового запису успішно оновлено"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Видалити",
+ "DISMISS": "Скасувати",
+ "PLACE_HOLDER": "Будь ласка, введіть {accountName} щоб підтвердити"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Будь ласка, виправте помилки форми",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "ID акаунту",
"NOTE": "Цей ID необхідний, якщо ви створюєте інтеграцію з API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Налаштування",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Назва облікового запису",
"PLACEHOLDER": "Ім'я вашого облікового запису",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Email підтримки вашої компанії",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Кількість днів після того, як заявка повинна автоматично буде закрита, якщо немає активності",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Будь ласка, введіть допустиму тривалість автозакртиття (мінімум 1 день і максимум 999 днів)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Оновити",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Продовження діалогу з е-поштою активоване для вашого облікового запису.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Доступне оновлення {latestChatwootVersion} для Chatwoot. Будь ласка, оновіть вашу копію.",
"LEARN_MORE": "Детальніше",
"PAYMENT_PENDING": "Очікується ваш платіж. Будь ласка, оновіть вашу платіжну інформацію, щоб продовжити використовувати Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "В вашому обліковому записі перевищено ліміт використання, будь ласка, поновіть ваш план, щоб продовжити використання Chatwoot",
"OPEN_BILLING": "Відкрити рахунок"
},
diff --git a/app/javascript/dashboard/i18n/locale/uk/helpCenter.json b/app/javascript/dashboard/i18n/locale/uk/helpCenter.json
index 215cd8347..781614022 100644
--- a/app/javascript/dashboard/i18n/locale/uk/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/uk/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Мітка",
"PLACEHOLDER": "user-guide",
- "ERROR": "Необхідно вказати мітку"
+ "ERROR": "Необхідно вказати мітку",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json
index d5e758d68..5cb66640f 100644
--- a/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/uk/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Назва Джерела",
"ADD_NAME": "Додайте назву Джерела",
"PICK_NAME": "Виберіть ім'я для вхідних",
- "PICK_A_VALUE": "Виберіть значення"
+ "PICK_A_VALUE": "Виберіть значення",
+ "CREATE_INBOX": "Створити вхідну скриньку"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Щоб додати свій профіль у Twitter як канал, вам потрібно авторизувати свій профіль у Twitter, натиснувши кнопку \"Увійти через Twitter\" ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Форма, що показується перед стартом діалогу",
"BUSINESS_HOURS": "Робочий час",
"WIDGET_BUILDER": "Конструктор віджетів",
- "BOT_CONFIGURATION": "Налаштування бота"
+ "BOT_CONFIGURATION": "Налаштування бота",
+ "CSAT": "CSAT"
},
"SETTINGS": "Налаштування",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Включити збір електронної пошти",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Увімкнути або вимкнути ящик збору повідомлень в новій розмові",
"AUTO_ASSIGNMENT": "Увімкнути автопризначення",
- "ENABLE_CSAT": "Увімкнути CSAT",
"SENDER_NAME_SECTION": "Увімкнути ім'я співробітника в електронній пошті",
- "ENABLE_CSAT_SUB_TEXT": "Увімкнути/Вимкнути опитування CSAT(Задоволення клієнтів) після вирішення розмови",
"SENDER_NAME_SECTION_TEXT": "Увімкнути/Вимкнути показ імені співробітника в електронній пошті, якщо це вимкнено, то буде відображатися бізнес-ім'я",
"ENABLE_CONTINUITY_VIA_EMAIL": "Увімкнути безперервність розмови через електронну пошту",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Розмови продовжуватимуться через електронну пошту, якщо доступна контактна адреса.",
@@ -568,6 +577,32 @@
"LABEL": "Відвідувачі повинні надати своє ім'я та адресу електронної пошти перед початком чату"
}
},
+ "CSAT": {
+ "TITLE": "Увімкнути CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Текст повідомлення",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "містить",
+ "DOES_NOT_CONTAINS": "не містить"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Встановіть доступність",
"SUBTITLE": "Встановіть доступність на вашому віджеті",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API канал"
+ "API": "API канал",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/uk/integrations.json b/app/javascript/dashboard/i18n/locale/uk/integrations.json
index c7536129a..619a3fff0 100644
--- a/app/javascript/dashboard/i18n/locale/uk/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/uk/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Повідомлення оновлено",
"WEBWIDGET_TRIGGERED": "Віджет онлайн чату відкрий користувачем",
"CONTACT_CREATED": "Контакт створено",
- "CONTACT_UPDATED": "Контакт оновлено"
+ "CONTACT_UPDATED": "Контакт оновлено",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Так, видалити",
"CANCEL": "Скасувати"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Надіслати...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "Ви",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Ви",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Введіть Ваше повідомлення...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "Ви можете змінити або скасувати план у будь-який час"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Будь ласка, зверніться до адміністратора для оновлення."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Оновити",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Особливості",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Ім'я",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Опис",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Особливості",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/uk/macros.json b/app/javascript/dashboard/i18n/locale/uk/macros.json
index 084c0d5f1..e6c48da6a 100644
--- a/app/javascript/dashboard/i18n/locale/uk/macros.json
+++ b/app/javascript/dashboard/i18n/locale/uk/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Заглушити розмову",
+ "SNOOZE_CONVERSATION": "Відкласти розмову",
+ "RESOLVE_CONVERSATION": "Вирішити розмову",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Змінити пріоритет",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/uk/report.json b/app/javascript/dashboard/i18n/locale/uk/report.json
index bf5978d63..f15f5065b 100644
--- a/app/javascript/dashboard/i18n/locale/uk/report.json
+++ b/app/javascript/dashboard/i18n/locale/uk/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Огляд міток",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Завантаження даних діаграми...",
"NO_ENOUGH_DATA": "Ми не отримали достатньо даних для генерації звіту. Будь ласка, спробуйте ще раз пізніше.",
"DOWNLOAD_LABEL_REPORTS": "Завантажити звіти по міткам",
@@ -559,6 +560,7 @@
"INBOX": "Вхідні",
"AGENT": "Агент",
"TEAM": "Команда",
+ "LABEL": "Мітка",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/uk/search.json b/app/javascript/dashboard/i18n/locale/uk/search.json
index 21a437522..86c6ae9c1 100644
--- a/app/javascript/dashboard/i18n/locale/uk/search.json
+++ b/app/javascript/dashboard/i18n/locale/uk/search.json
@@ -4,12 +4,14 @@
"ALL": "Всі",
"CONTACTS": "Контакти",
"CONVERSATIONS": "Бесіди",
- "MESSAGES": "Текст повідомлень"
+ "MESSAGES": "Текст повідомлень",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Контакти",
"CONVERSATIONS": "Бесіди",
- "MESSAGES": "Текст повідомлень"
+ "MESSAGES": "Текст повідомлень",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/uk/settings.json b/app/javascript/dashboard/i18n/locale/uk/settings.json
index 452571703..c8f3dee00 100644
--- a/app/javascript/dashboard/i18n/locale/uk/settings.json
+++ b/app/javascript/dashboard/i18n/locale/uk/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Ключ доступу",
"NOTE": "Цей ключ можна використовувати, якщо ви створюєте API-інтеграцію",
- "COPY": "Копіювати"
+ "COPY": "Копіювати",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Не в мережі"
},
"SET_AVAILABILITY_SUCCESS": "Доступу успішно встановлено",
- "SET_AVAILABILITY_ERROR": "Не вдалося налаштувати доступність, будь ласка, спробуйте ще раз"
+ "SET_AVAILABILITY_ERROR": "Не вдалося налаштувати доступність, будь ласка, спробуйте ще раз",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Ваша адреса електронної пошти",
@@ -280,6 +286,7 @@
"REPORTS": "Звіти",
"SETTINGS": "Налаштування",
"CONTACTS": "Контакти",
+ "ACTIVE": "Активний",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Назва компанії",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Додати"
+ "SUBMIT": "Додати",
+ "CANCEL": "Скасувати"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ur/agentBots.json b/app/javascript/dashboard/i18n/locale/ur/agentBots.json
index 2651c39de..e1cc3800d 100644
--- a/app/javascript/dashboard/i18n/locale/ur/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ur/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "منسوخ کریں۔",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "حذف کریں۔",
"TITLE": "Delete bot",
- "SUBMIT": "حذف کریں۔",
- "CANCEL_BUTTON_TEXT": "منسوخ کریں۔",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "حذف کرنے کی تصدیق کریں۔",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "نہیں ، رہنے دیں"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "ترمیم",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "منسوخ کریں۔",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "منسوخ کریں۔",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur/auditLogs.json b/app/javascript/dashboard/i18n/locale/ur/auditLogs.json
index 2896de8d5..8166e3717 100644
--- a/app/javascript/dashboard/i18n/locale/ur/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ur/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur/automation.json b/app/javascript/dashboard/i18n/locale/ur/automation.json
index 39ae06632..b2b5ce768 100644
--- a/app/javascript/dashboard/i18n/locale/ur/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ur/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "کوئی نہیں۔"
+ "NONE_OPTION": "کوئی نہیں۔",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "خاموش گفتگو",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "ان باکس",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "اسٹیٹس",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "ملک",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur/components.json b/app/javascript/dashboard/i18n/locale/ur/components.json
index 081b19bb3..02df3a635 100644
--- a/app/javascript/dashboard/i18n/locale/ur/components.json
+++ b/app/javascript/dashboard/i18n/locale/ur/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur/contact.json b/app/javascript/dashboard/i18n/locale/ur/contact.json
index f6f5ad8eb..249c1b013 100644
--- a/app/javascript/dashboard/i18n/locale/ur/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ur/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "کانٹیکٹس",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "پیغام",
"SEND_MESSAGE": "پیغام بھیجیں",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "کانٹیکٹ حذف کریں۔",
"DELETE_DIALOG": {
"TITLE": "حذف کرنے کی تصدیق کریں۔",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "ہاں، حذف کریں۔ ",
"API": {
"SUCCESS_MESSAGE": "کانٹیکٹ کامیابی سے حذف ہو گیا۔",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "کوئی کانٹیکٹ آپ کی تلاش سے میل نہیں کھاتا 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ur/conversation.json b/app/javascript/dashboard/i18n/locale/ur/conversation.json
index b944fc4c9..0078f4b5b 100644
--- a/app/javascript/dashboard/i18n/locale/ur/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ur/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "مکالمات لوڈ ہو رہے ہیں",
"CANNOT_REPLY": "کی وجہ سے آپ جواب نہیں دے سکتے",
"24_HOURS_WINDOW": "24 گھنٹے میسج ونڈو کی پابندی",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "یہ گفتگو آپ کو تفویض نہیں کی گئی ہے۔ کیا آپ یہ گفتگو اپنے آپ کو تفویض کرنا چاہیں گے?",
"ASSIGN_TO_ME": "مجھے تفویض کریں۔",
"TWILIO_WHATSAPP_CAN_REPLY": "آپ اس بات چیت کا جواب صرف ایک ٹیمپلیٹ پیغام کا استعمال کرتے ہوئے دے سکتے ہیں, کيونکہ",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 گھنٹے میسج ونڈو کی پابندی",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "آپ جواب دے رہے ہیں:",
"REMOVE_SELECTION": "انتخاب کو ہٹا دیں۔",
"DOWNLOAD": "ڈاؤن لوڈ کریں",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "حل کریں۔",
"REOPEN_ACTION": "دوبارہ کھولیں۔",
"OPEN_ACTION": "کھولیں۔",
+ "MORE_ACTIONS": "More actions",
"OPEN": "مزید",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "حذف کریں۔"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "گفتگو کے لیبلز",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "پچھلی بات چیت",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ur/general.json b/app/javascript/dashboard/i18n/locale/ur/general.json
index 795daa26e..92475863a 100644
--- a/app/javascript/dashboard/i18n/locale/ur/general.json
+++ b/app/javascript/dashboard/i18n/locale/ur/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "تلاش کریں۔",
"EMPTY_STATE": "کوئی نتیجہ نہیں"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur/generalSettings.json b/app/javascript/dashboard/i18n/locale/ur/generalSettings.json
index 1340c0d41..b41fc07a2 100644
--- a/app/javascript/dashboard/i18n/locale/ur/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ur/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "حذف کریں۔",
+ "DISMISS": "منسوخ کریں۔",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/ur/helpCenter.json b/app/javascript/dashboard/i18n/locale/ur/helpCenter.json
index 1de6ca39b..ffb1ad3de 100644
--- a/app/javascript/dashboard/i18n/locale/ur/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ur/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json
index e8d9e786c..750eb5be6 100644
--- a/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur/integrations.json b/app/javascript/dashboard/i18n/locale/ur/integrations.json
index b4a29b18f..aa18160a1 100644
--- a/app/javascript/dashboard/i18n/locale/ur/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ur/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "منسوخ کریں۔"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "پیغام بھیجیں...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "نام",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/ur/macros.json b/app/javascript/dashboard/i18n/locale/ur/macros.json
index f43cb38c5..31bfe5ea4 100644
--- a/app/javascript/dashboard/i18n/locale/ur/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ur/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "خاموش گفتگو",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur/report.json b/app/javascript/dashboard/i18n/locale/ur/report.json
index 0e456b5cd..37d8dc796 100644
--- a/app/javascript/dashboard/i18n/locale/ur/report.json
+++ b/app/javascript/dashboard/i18n/locale/ur/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "ان باکس",
"AGENT": "ایجنٹ",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/ur/search.json b/app/javascript/dashboard/i18n/locale/ur/search.json
index 1641a1ee3..bf0da44ef 100644
--- a/app/javascript/dashboard/i18n/locale/ur/search.json
+++ b/app/javascript/dashboard/i18n/locale/ur/search.json
@@ -4,12 +4,14 @@
"ALL": "تمام",
"CONTACTS": "کانٹیکٹس",
"CONVERSATIONS": "مکالمات",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "کانٹیکٹس",
"CONVERSATIONS": "مکالمات",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/ur/settings.json b/app/javascript/dashboard/i18n/locale/ur/settings.json
index df973a0ba..cceb0facb 100644
--- a/app/javascript/dashboard/i18n/locale/ur/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ur/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "کانٹیکٹس",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "کمپنی کا نام",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "جمع کرائیں"
+ "SUBMIT": "جمع کرائیں",
+ "CANCEL": "منسوخ کریں۔"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/agentBots.json b/app/javascript/dashboard/i18n/locale/ur_IN/agentBots.json
index 41b8fcb1b..d3a0bb991 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "What does this bot do?"
- },
- "BOT_CONFIG": {
- "ERROR": "Please enter your CSML bot configuration above.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Delete",
"TITLE": "Delete bot",
- "SUBMIT": "Delete",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Yes, Delete",
+ "NO": "No, Keep"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Edit",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Access Token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "What does this bot do?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Cancel",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/auditLogs.json b/app/javascript/dashboard/i18n/locale/ur_IN/auditLogs.json
index 35c054fa2..df236f5b5 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/automation.json b/app/javascript/dashboard/i18n/locale/ur_IN/automation.json
index bb4946416..86ec0b58b 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "None"
+ "NONE_OPTION": "None",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Status",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Country",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/components.json b/app/javascript/dashboard/i18n/locale/ur_IN/components.json
index c7230b1fc..e44c6e039 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/components.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/contact.json b/app/javascript/dashboard/i18n/locale/ur_IN/contact.json
index 5b679c1be..38489d630 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Contacts",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "Message",
"SEND_MESSAGE": "Send message",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Delete contact",
"DELETE_DIALOG": {
"TITLE": "Confirm Deletion",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Yes, Delete",
"API": {
"SUCCESS_MESSAGE": "Contact deleted successfully",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json b/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json
index 6cfe9d082..c047f17ad 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "Assign to me",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 hour message window restriction",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/general.json b/app/javascript/dashboard/i18n/locale/ur_IN/general.json
index 78e97db90..129fb239a 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/general.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Search",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "Close"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/generalSettings.json b/app/javascript/dashboard/i18n/locale/ur_IN/generalSettings.json
index 9ad4e4b57..c0c4d247d 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Account settings",
"SUBMIT": "Update settings",
"BACK": "Back",
@@ -8,6 +14,26 @@
"ERROR": "Could not update settings, try again!",
"SUCCESS": "Successfully updated account settings"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "Cancel",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Please fix form errors",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Account name",
"PLACEHOLDER": "Your account name",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Your company's support email",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Update",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Conversation continuity with emails is enabled for your account.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/helpCenter.json b/app/javascript/dashboard/i18n/locale/ur_IN/helpCenter.json
index 8fa64108b..f437b83d9 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json
index 6cd438a20..037c8d764 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_A_VALUE": "Pick a value",
+ "CREATE_INBOX": "Create Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "CSAT": "CSAT"
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "Enable auto assignment",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "contains",
+ "DOES_NOT_CONTAINS": "does not contain"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API Channel"
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json b/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json
index 05e02723f..4eb1343cb 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Yes, delete",
"CANCEL": "Cancel"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Update",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/macros.json b/app/javascript/dashboard/i18n/locale/ur_IN/macros.json
index 95e02fe94..d22744190 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Mute Conversation",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/report.json b/app/javascript/dashboard/i18n/locale/ur_IN/report.json
index e176d9147..18f1ed14b 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/report.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "Inbox",
"AGENT": "Agent",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/search.json b/app/javascript/dashboard/i18n/locale/ur_IN/search.json
index 3cb566813..e8510ab97 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/search.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/search.json
@@ -4,12 +4,14 @@
"ALL": "All",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/ur_IN/settings.json b/app/javascript/dashboard/i18n/locale/ur_IN/settings.json
index a05b20d4c..6a9cbf229 100644
--- a/app/javascript/dashboard/i18n/locale/ur_IN/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ur_IN/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Access Token",
"NOTE": "This token can be used if you are building an API based integration",
- "COPY": "Copy"
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Offline"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Your email address",
@@ -280,6 +286,7 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/vi/agentBots.json b/app/javascript/dashboard/i18n/locale/vi/agentBots.json
index 1d707f7e9..a001515bf 100644
--- a/app/javascript/dashboard/i18n/locale/vi/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/vi/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot name is required."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "Bot này sẽ làm gì?"
- },
- "BOT_CONFIG": {
- "ERROR": "",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validate and save"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Huỷ",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Xoá",
"TITLE": "Delete bot",
- "SUBMIT": "Xoá",
- "CANCEL_BUTTON_TEXT": "Huỷ",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "CONFIRM": {
+ "TITLE": "Xác nhận xoá",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Có, Xoá",
+ "NO": "Không, giữ"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "Chỉnh sửa",
- "LOADING": "Fetching bots...",
"TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Huỷ",
"API": {
"SUCCESS_MESSAGE": "Bot updated successfully.",
"ERROR_MESSAGE": "Could not update bot. Please try again."
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "Token truy cập",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Bot name",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "Bot name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Mô tả",
+ "PLACEHOLDER": "Bot này sẽ làm gì?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "Bot name is required",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "Huỷ",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/vi/auditLogs.json b/app/javascript/dashboard/i18n/locale/vi/auditLogs.json
index 4f5eb0c9a..5f120867e 100644
--- a/app/javascript/dashboard/i18n/locale/vi/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/vi/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/vi/automation.json b/app/javascript/dashboard/i18n/locale/vi/automation.json
index 646e3ce72..169473ab3 100644
--- a/app/javascript/dashboard/i18n/locale/vi/automation.json
+++ b/app/javascript/dashboard/i18n/locale/vi/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "Không có"
+ "NONE_OPTION": "Không có",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Cuộc trò chuyện đã được tạo",
+ "CONVERSATION_UPDATED": "Cuộc trò chuyện đã được cập nhật",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Tắt tiếng cuộc trò chuyện",
+ "SNOOZE_CONVERSATION": "Tạm dừng \bhội thoại",
+ "RESOLVE_CONVERSATION": "Giải quyết cuộc trò chuyện",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Hộp thư đến",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Số điện thoại",
+ "STATUS": "Trạng thái",
+ "BROWSER_LANGUAGE": "Ngôn ngữ của Trình duyệt",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Quốc gia",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Nhóm",
+ "PRIORITY": "Mức độ ưu tiên"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/vi/components.json b/app/javascript/dashboard/i18n/locale/vi/components.json
index cb1ea956b..d7fdcc472 100644
--- a/app/javascript/dashboard/i18n/locale/vi/components.json
+++ b/app/javascript/dashboard/i18n/locale/vi/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Tìm hiểu thêm",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/vi/contact.json b/app/javascript/dashboard/i18n/locale/vi/contact.json
index 311f38114..384923580 100644
--- a/app/javascript/dashboard/i18n/locale/vi/contact.json
+++ b/app/javascript/dashboard/i18n/locale/vi/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "Liên hệ",
"SEARCH_TITLE": "Tìm kiếm liên hệ",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Tìm kiếm...",
"MESSAGE_BUTTON": "Tin nhắn",
"SEND_MESSAGE": "Gửi tin nhắn",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "Xoá liên hệ",
"DELETE_DIALOG": {
"TITLE": "Xác nhận xoá",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "Có, Xoá",
"API": {
"SUCCESS_MESSAGE": "Liên hệ đã được xóa thành công",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "Không có liên hệ nào khớp với tìm kiếm của bạn 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/vi/conversation.json b/app/javascript/dashboard/i18n/locale/vi/conversation.json
index 60f1921e4..50b5edea3 100644
--- a/app/javascript/dashboard/i18n/locale/vi/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/vi/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "Đang tải cuộc trò chuyện",
"CANNOT_REPLY": "Bạn không thể trả lời do",
"24_HOURS_WINDOW": "Giới hạn thời lượng tin nhắn 24 giờ",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Hội thoại này không được phân công cho bạn. Bạn có muốn phân công hội thoại này cho chính mình?",
"ASSIGN_TO_ME": "Phân công cho tôi",
"TWILIO_WHATSAPP_CAN_REPLY": "Bạn chỉ có thể phản hồi hội thoại này bằng tin nhắn mẫu vì",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "Giới hạn thời lượng tin nhắn 24 giờ",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "Bạn đang trả lời:",
"REMOVE_SELECTION": "Xóa lựa chọn",
"DOWNLOAD": "Tải xuống",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "Giải quyết",
"REOPEN_ACTION": "Mở lại",
"OPEN_ACTION": "Mở",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Nhiều",
"CLOSE": "Đóng",
"DETAILS": "chi tiết",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "Xoá"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Đánh dấu chưa giải quyết",
"RESOLVED": "Đánh dấu là đã giải quyết",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Gán nhãn",
"AGENTS_LOADING": "Đang tải điện thoại viên...",
"ASSIGN_TEAM": "Gán nhóm",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Id hội thoại {conversationId} được gán cho \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Đã gán nhãn thành công",
"ASSIGN_LABEL_FAILED": "Gán nhãn không thành công",
"CHANGE_TEAM": "Nhóm hội thoại đã được thay đổi",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "Tệp vượt quá {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB mức hạn chế",
"MESSAGE_ERROR": "Không thể gửi tin nhắn này, vui lòng thử lại sau",
"SENT_BY": "Gửi bởi:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Hành động của \bhội thoại",
"CONVERSATION_LABELS": "Nhãn hội thoại",
"CONVERSATION_INFO": "Thông tin hội thoại",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Thuộc tính của liên hệ",
"PREVIOUS_CONVERSATION": "Cuộc trò chuyện trước đó",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/vi/general.json b/app/javascript/dashboard/i18n/locale/vi/general.json
index fa77eaf0f..52b5d2d2c 100644
--- a/app/javascript/dashboard/i18n/locale/vi/general.json
+++ b/app/javascript/dashboard/i18n/locale/vi/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "Tìm kiếm",
"EMPTY_STATE": "Không tìm thấy kết quả"
- }
+ },
+ "CLOSE": "Đóng"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/vi/generalSettings.json b/app/javascript/dashboard/i18n/locale/vi/generalSettings.json
index 903c7c1ed..39db9df91 100644
--- a/app/javascript/dashboard/i18n/locale/vi/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/vi/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "Cài đặt tài khoản",
"SUBMIT": "Cập nhật cài đặt",
"BACK": "Trờ về",
@@ -8,6 +14,26 @@
"ERROR": "Không thể cập nhật cài đặt, hãy thử lại!",
"SUCCESS": "Đã cập nhật thành công cài đặt tài khoản"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "Xoá",
+ "DISMISS": "Huỷ",
+ "PLACE_HOLDER": "Vui lòng điền {accountName} để xác nhận"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "Vui lòng sửa lỗi biểu mẫu",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Tài khoản SID",
"NOTE": "ID này là bắt buộc nếu bạn đang xây dựng tích hợp dựa trên API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "Tên tài khoản",
"PLACEHOLDER": "Tên tài khoản của bạn",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "Email hỗ trợ của công ty bạn",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Số ngày sau đó mà vé sẽ tự động giải quyết nếu không có hoạt động nào",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Vui lòng điền thời lượng tự động giải quyết hợp lệ (tối thiểu 1 ngày và tối đa 999 ngày)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Cập nhật",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "Tính liên tục của cuộc trò chuyện với email được kích hoạt cho tài khoản của bạn.",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Đã có bản cập nhật {latestChatwootVersion} cho Chatwoot. Vui lòng cập nhật phiên bản của bạn.",
"LEARN_MORE": "Tìm hiểu thêm",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/vi/helpCenter.json b/app/javascript/dashboard/i18n/locale/vi/helpCenter.json
index da42b6de9..f76ac6755 100644
--- a/app/javascript/dashboard/i18n/locale/vi/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/vi/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Phải có Slug"
+ "ERROR": "Phải có Slug",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json
index e745419c6..706be5e28 100644
--- a/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/vi/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "Tên hộp thư đến",
"ADD_NAME": "Thêm tên cho hộp thư đến của bạn",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "Chọn một giá trị"
+ "PICK_A_VALUE": "Chọn một giá trị",
+ "CREATE_INBOX": "Tạo Hộp thư đến"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "Để thêm hồ sơ Twitter của bạn làm kênh, bạn cần xác thực Hồ sơ Twitter của mình bằng cách nhấp vào 'Đăng nhập bằng Twitter",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Biểu mẫu trước khi trò chuyện",
"BUSINESS_HOURS": "Giờ làm việc",
"WIDGET_BUILDER": "Trình tạo widget",
- "BOT_CONFIGURATION": "Cấu hình Bot"
+ "BOT_CONFIGURATION": "Cấu hình Bot",
+ "CSAT": "CSAT"
},
"SETTINGS": "Cài đặt",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Bật hộp thu thập email",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Bật hoặc tắt hộp thu thập email trên cuộc trò chuyện mới",
"AUTO_ASSIGNMENT": "Bật tự động chuyển nhượng",
- "ENABLE_CSAT": "Bật chỉ số đo lường sự hài lòng khách hàng",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Bật / Tắt khảo sát CSAT (Mức độ hài lòng của khách hàng) sau khi giải quyết cuộc trò chuyện",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Bật tiếp tục cuộc trò chuyện qua email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Cuộc trò chuyện sẽ tiếp tục qua email nếu có địa chỉ email liên lạc.",
@@ -568,6 +577,32 @@
"LABEL": "Khách truy cập nên cung cấp tên và địa chỉ email của họ trước khi bắt đầu trò chuyện"
}
},
+ "CSAT": {
+ "TITLE": "Bật chỉ số đo lường sự hài lòng khách hàng",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "Tin nhắn",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "chứa",
+ "DOES_NOT_CONTAINS": "không bao gồm"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "Đặt tính khả dụng của bạn",
"SUBTITLE": "Đặt tính khả dụng của bạn trên tiện ích trò chuyện trực tiếp",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "Kênh API"
+ "API": "Kênh API",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/vi/integrations.json b/app/javascript/dashboard/i18n/locale/vi/integrations.json
index ba2facada..53a9d6997 100644
--- a/app/javascript/dashboard/i18n/locale/vi/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/vi/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Tin nhắn đã được cập nhật",
"WEBWIDGET_TRIGGERED": "Tiện ích trò chuyện trực tuyến do người dùng mở",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "Có, xoá",
"CANCEL": "Huỷ"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "Gửi tin nhắn...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "Gõ tin nhắn của bạn...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "Cập nhật",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Các tính năng",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "Tên",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "Mô tả",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Các tính năng",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/vi/macros.json b/app/javascript/dashboard/i18n/locale/vi/macros.json
index b6395af47..ba075f393 100644
--- a/app/javascript/dashboard/i18n/locale/vi/macros.json
+++ b/app/javascript/dashboard/i18n/locale/vi/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "Tắt tiếng cuộc trò chuyện",
+ "SNOOZE_CONVERSATION": "Tạm dừng \bhội thoại",
+ "RESOLVE_CONVERSATION": "Giải quyết cuộc trò chuyện",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/vi/report.json b/app/javascript/dashboard/i18n/locale/vi/report.json
index 3722dacd0..d6f282a3a 100644
--- a/app/javascript/dashboard/i18n/locale/vi/report.json
+++ b/app/javascript/dashboard/i18n/locale/vi/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Tổng quan nhãn",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "Đang tải các biểu đồ dữ liệu...",
"NO_ENOUGH_DATA": "Chúng tôi không nhận được đủ điểm dữ liệu để tạo báo cáo, Vui lòng thử lại sau.",
"DOWNLOAD_LABEL_REPORTS": "Tải xuống báo cáo nhãn",
@@ -559,6 +560,7 @@
"INBOX": "Hộp thư đến",
"AGENT": "Nhà cung cấp",
"TEAM": "Nhóm",
+ "LABEL": "Nhãn",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/vi/search.json b/app/javascript/dashboard/i18n/locale/vi/search.json
index 1504f5025..c9155c953 100644
--- a/app/javascript/dashboard/i18n/locale/vi/search.json
+++ b/app/javascript/dashboard/i18n/locale/vi/search.json
@@ -4,12 +4,14 @@
"ALL": "Tất cả",
"CONTACTS": "Danh bạ",
"CONVERSATIONS": "Các cuộc hội thoại",
- "MESSAGES": "Tin nhắn"
+ "MESSAGES": "Tin nhắn",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Danh bạ",
"CONVERSATIONS": "Các cuộc hội thoại",
- "MESSAGES": "Tin nhắn"
+ "MESSAGES": "Tin nhắn",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/vi/settings.json b/app/javascript/dashboard/i18n/locale/vi/settings.json
index 9650bc330..8933ff6f7 100644
--- a/app/javascript/dashboard/i18n/locale/vi/settings.json
+++ b/app/javascript/dashboard/i18n/locale/vi/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "Token truy cập",
"NOTE": "Có thể sử dụng Token này nếu bạn đang xây dựng tích hợp dựa trên API",
- "COPY": "Sao Chép"
+ "COPY": "Sao Chép",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "Audio Alerts",
@@ -185,7 +190,8 @@
"OFFLINE": "Không Trực Tuyến"
},
"SET_AVAILABILITY_SUCCESS": "Tính khả dụng đã được thiết lập thành công",
- "SET_AVAILABILITY_ERROR": "Không thể đặt, vui lòng thử lại"
+ "SET_AVAILABILITY_ERROR": "Không thể đặt, vui lòng thử lại",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Địa chỉ email của bạn",
@@ -280,6 +286,7 @@
"REPORTS": "Báo cáo",
"SETTINGS": "Cài Đặt",
"CONTACTS": "Liên hệ",
+ "ACTIVE": "Có hiệu lực",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "Tên công ty",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Gửi"
+ "SUBMIT": "Gửi",
+ "CANCEL": "Huỷ"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/agentBots.json b/app/javascript/dashboard/i18n/locale/zh_CN/agentBots.json
index b7f5e096e..3254d3098 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/agentBots.json
@@ -4,21 +4,11 @@
"LOADING_EDITOR": "正在加载编辑器...",
"DESCRIPTION": "客服机器人就像您团队中最出色的成员。它们可以处理琐事,让您专注于重要的事情。试试看吧。您可以在此页面管理您的机器人,或使用“配置新机器人”按钮创建新的机器人。",
"LEARN_MORE": "了解客服机器人",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "机器人名称",
- "PLACEHOLDER": "为您的机器人命名。",
- "ERROR": "机器人名称是必填的。"
- },
- "DESCRIPTION": {
- "LABEL": "机器人描述",
- "PLACEHOLDER": "这个机器人的用途是?"
- },
- "BOT_CONFIG": {
- "ERROR": "请在上方输入您的 CSML 机器人配置。",
- "API_ERROR": "您的 CSML 配置无效。请修复后再试。"
- },
- "SUBMIT": "验证并保存"
+ "GLOBAL_BOT": "系统级机器人",
+ "GLOBAL_BOT_BADGE": "系统",
+ "AVATAR": {
+ "SUCCESS_DELETE": "机器人头像删除成功",
+ "ERROR_DELETE": "删除机器人头像时出错,请重试"
},
"BOT_CONFIGURATION": {
"TITLE": "选择一个客服机器人",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "选择机器人"
},
"ADD": {
- "TITLE": "配置新机器人",
+ "TITLE": "添加机器人",
"CANCEL_BUTTON_TEXT": "取消",
"API": {
"SUCCESS_MESSAGE": "机器人添加成功.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "未找到机器人。您可以通过点击“配置新机器人”按钮 ↗ 来创建一个机器人",
+ "404": "未找到机器人。您可以通过点击「添加机器人」按钮来创建一个机器人。",
"LOADING": "正在获取机器人...",
- "TYPE": "机器人类型"
+ "TABLE_HEADER": {
+ "DETAILS": "机器人详情",
+ "URL": "Webhook 网址"
+ }
},
"DELETE": {
"BUTTON_TEXT": "删除",
"TITLE": "删除机器人",
- "SUBMIT": "删除",
- "CANCEL_BUTTON_TEXT": "取消",
- "DESCRIPTION": "您确定要删除此机器人吗?此操作不可撤销。",
+ "CONFIRM": {
+ "TITLE": "确认删除",
+ "MESSAGE": "您确定要删除 {name}?",
+ "YES": "是,删除",
+ "NO": "不,保留"
+ },
"API": {
"SUCCESS_MESSAGE": "成功删除机器人.",
"ERROR_MESSAGE": "无法删除机器人。请再试一次。"
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "编辑",
- "LOADING": "正在获取机器人...",
"TITLE": "编辑机器人",
- "CANCEL_BUTTON_TEXT": "取消",
"API": {
"SUCCESS_MESSAGE": "机器人更新成功.",
"ERROR_MESSAGE": "无法更新机器人。请再试一次。"
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "访问令牌",
+ "DESCRIPTION": "复制访问令牌并安全保存",
+ "COPY_SUCCESSFUL": "访问令牌已复制到剪贴板",
+ "RESET_SUCCESS": "成功重新生成访问令牌",
+ "RESET_ERROR": "无法重新生成访问令牌。请重试"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "机器人头像"
+ },
+ "NAME": {
+ "LABEL": "机器人名称",
+ "PLACEHOLDER": "输入机器人名称",
+ "REQUIRED": "机器人名称是必需的"
+ },
+ "DESCRIPTION": {
+ "LABEL": "描述信息",
+ "PLACEHOLDER": "这个机器人的用途是?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook 网址",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL 是必需的"
+ },
+ "ERRORS": {
+ "NAME": "机器人名称是必需的",
+ "URL": "Webhook URL 是必需的",
+ "VALID_URL": "请输入一个以 http:// 或 https:// 开头的有效URL"
+ },
+ "CANCEL": "取消",
+ "CREATE": "创建机器人",
+ "UPDATE": "更新机器人"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "配置Webhook 机器人与您的自定义服务集成。机器人将接收和处理会话中的事件,并且能够响应这些事件。"
+ },
"TYPES": {
- "WEBHOOK": "Webhook 机器人",
- "CSML": "CSML 机器人"
+ "WEBHOOK": "Webhook 机器人"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/auditLogs.json b/app/javascript/dashboard/i18n/locale/zh_CN/auditLogs.json
index c7df57e4b..b7fca9a39 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} 更新了账户配置 (##{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} 删除了对话 #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/automation.json b/app/javascript/dashboard/i18n/locale/zh_CN/automation.json
index a14b7febb..285a7a8bd 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/automation.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "至少需要一个条件",
"ATLEAST_ONE_ACTION_REQUIRED": "至少需要一个动作"
},
- "NONE_OPTION": "无"
+ "NONE_OPTION": "无",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "对话创建",
+ "CONVERSATION_UPDATED": "对话已更新",
+ "MESSAGE_CREATED": "消息已创建",
+ "CONVERSATION_OPENED": "对话已打开"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "分配客服",
+ "ASSIGN_TEAM": "分配团队",
+ "ADD_LABEL": "添加标签",
+ "REMOVE_LABEL": "移除标签",
+ "SEND_EMAIL_TO_TEAM": "发送电子邮件给团队",
+ "SEND_EMAIL_TRANSCRIPT": "通过邮件发送聊天记录",
+ "MUTE_CONVERSATION": "开始会话",
+ "SNOOZE_CONVERSATION": "暂停对话",
+ "RESOLVE_CONVERSATION": "解决对话",
+ "SEND_WEBHOOK_EVENT": "发送 Webhook 事件",
+ "SEND_ATTACHMENT": "发送附件",
+ "SEND_MESSAGE": "发送消息",
+ "CHANGE_PRIORITY": "更改优先级",
+ "ADD_SLA": "添加SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "消息类型",
+ "MESSAGE_CONTAINS": "消息包含",
+ "EMAIL": "Email",
+ "INBOX": "收件箱",
+ "CONVERSATION_LANGUAGE": "对话语言",
+ "PHONE_NUMBER": "电话号码",
+ "STATUS": "状态",
+ "BROWSER_LANGUAGE": "浏览器语言",
+ "MAIL_SUBJECT": "电子邮件主题",
+ "COUNTRY_NAME": "国家",
+ "REFERER_LINK": "引荐链接",
+ "ASSIGNEE_NAME": "负责人",
+ "TEAM_NAME": "团队",
+ "PRIORITY": "优先级"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/components.json b/app/javascript/dashboard/i18n/locale/zh_CN/components.json
index 72dc74dfa..3d5f736ec 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/components.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "了解更多",
"WATCH_VIDEO": "观看视频"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "分钟",
+ "HOURS": "小时",
+ "DAYS": "天",
+ "PLACEHOLDER": "输入耗时"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/contact.json b/app/javascript/dashboard/i18n/locale/zh_CN/contact.json
index 8b1806f02..b233f798b 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/contact.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "联系人",
"SEARCH_TITLE": "搜索联系人",
+ "ACTIVE_TITLE": "活跃的联系人",
"SEARCH_PLACEHOLDER": "搜索……",
"MESSAGE_BUTTON": "消息",
"SEND_MESSAGE": "发送消息",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "添加 Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "这一操作是永久且不可逆转的。",
+ "BUTTON": "立即删除"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "删除联系人",
"DELETE_DIALOG": {
"TITLE": "确认删除",
- "DESCRIPTION": "您确定要删除此 {contactName} 联系人吗?",
+ "DESCRIPTION": "您确定要删除此联系人吗?",
"CONFIRM": "是,删除",
"API": {
"SUCCESS_MESSAGE": "联系人删除成功",
@@ -544,6 +549,9 @@
"WROTE": "写道",
"YOU": "您",
"SAVE": "保存备注",
+ "EXPAND": "扩展",
+ "COLLAPSE": "收起",
+ "NO_NOTES": "没有备注,您可以从联系人详细信息页面添加备注。",
"EMPTY_STATE": "此联系人没有关联的备注。您可以在上方输入框中添加备注。"
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "点击下方按钮开始添加新联系人",
"BUTTON_LABEL": "添加联系人",
"SEARCH_EMPTY_STATE_TITLE": "没有搜索到联系人🔍",
- "LIST_EMPTY_STATE_TITLE": "此视图中没有可用的联系人📋"
+ "LIST_EMPTY_STATE_TITLE": "此视图中没有可用的联系人📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "目前没有联系人在线 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json b/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json
index eb985dc5f..43c46fa3a 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "加载更多对话",
"CANNOT_REPLY": "您不能回复,原因是:",
"24_HOURS_WINDOW": "24 小时消息窗口限制",
+ "API_HOURS_WINDOW": "您只能在 {hours} 小时内回复此对话",
"NOT_ASSIGNED_TO_YOU": "此对话未分配给您。您想要将此对话分配给自己吗?",
"ASSIGN_TO_ME": "分配给我",
"TWILIO_WHATSAPP_CAN_REPLY": "您只能使用模板信息回复此会话,原因是",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 小时消息窗口限制",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "此 Instagram 帐户已迁移到新的 Instagram 通道收件箱。 所有新消息都将在这里显示。您将无法从这个对话中发送消息。",
"REPLYING_TO": "您正在回复到:",
"REMOVE_SELECTION": "移除选择",
"DOWNLOAD": "下载",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "已解决",
"REOPEN_ACTION": "重新打开",
"OPEN_ACTION": "打开",
+ "MORE_ACTIONS": "更多操作",
"OPEN": "详细信息",
"CLOSE": "关闭",
"DETAILS": "详情",
@@ -115,6 +118,11 @@
"FAILED": "无法更改优先级。请重试。"
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "删除对话 #{conversationId}",
+ "DESCRIPTION": "您确定要删除此对话吗?",
+ "CONFIRM": "删除"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "标记为待处理",
"RESOLVED": "标记为已解决",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "分配标签",
"AGENTS_LOADING": "正在加载客服代表...",
"ASSIGN_TEAM": "分配一个团队",
+ "DELETE": "删除对话",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "对话 ID {conversationId} 已分配给 \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "已成功分配标签",
"ASSIGN_LABEL_FAILED": "分配标签失败",
"CHANGE_TEAM": "对话团队已更改",
+ "SUCCESS_DELETE_CONVERSATION": "对话成功删除",
+ "FAIL_DELETE_CONVERSATION": "无法删除对话!请重试",
"FILE_SIZE_LIMIT": "文件超过了 {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB 的附件限制",
"MESSAGE_ERROR": "无法发送此消息,请稍后再试",
"SENT_BY": "发送人:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "对话操作",
"CONVERSATION_LABELS": "对话标记",
"CONVERSATION_INFO": "对话信息",
+ "CONTACT_NOTES": "联系人备注",
"CONTACT_ATTRIBUTES": "联系人属性",
"PREVIOUS_CONVERSATION": "上一次对话",
"MACROS": "宏",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/general.json b/app/javascript/dashboard/i18n/locale/zh_CN/general.json
index bd655a5ba..3ee3c74db 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/general.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "搜索",
"EMPTY_STATE": "没有检索到相关信息"
- }
+ },
+ "CLOSE": "关闭"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/generalSettings.json b/app/javascript/dashboard/i18n/locale/zh_CN/generalSettings.json
index 2ebc50661..f4535fee6 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "您已经超过对话限制。黑客计划只允许500次对话。",
+ "INBOXES": "您已超过收件箱限制。Hacker 计划只支持网站在线聊天。其他收件箱如电子邮件、WhatsApp 等需要付费计划。",
+ "AGENTS": "您已超过坐席限制。黑客计划只允许 2 个坐席。",
+ "NON_ADMIN": "请联系您的管理员升级计划并继续使用所有功能。"
+ },
"TITLE": "帐户设置",
"SUBMIT": "更新设置",
"BACK": "后退",
@@ -8,6 +14,26 @@
"ERROR": "无法更新设置,请重试!",
"SUCCESS": "已成功更新账户设置"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "删除您的帐户",
+ "NOTE": "一旦您删除您的账户,您的所有数据将被删除。",
+ "BUTTON_TEXT": "删除您的账户",
+ "CONFIRM": {
+ "TITLE": "删除账户",
+ "MESSAGE": "删除您的账户是不可逆的。请在下面输入您的账户名称以确认您想要永久删除它。",
+ "BUTTON_TEXT": "删除",
+ "DISMISS": "取消",
+ "PLACE_HOLDER": "请输入 {accountName} 以确认"
+ },
+ "SUCCESS": "账户已标记为删除",
+ "FAILURE": "无法删除账户,请重试!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "已计划删除的账户",
+ "MESSAGE_MANUAL": "此账户已计划在 {deletionDate} 删除。该操作由管理员请求。你可以在该日期前取消删除。",
+ "MESSAGE_INACTIVITY": "此账户由于不活跃已计划在 {deletionDate} 删除。你可以在该日期前取消删除。",
+ "CLEAR_BUTTON": "取消已计划的删除"
+ }
+ },
"FORM": {
"ERROR": "请修正表单错误",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "账号 ID",
"NOTE": "如果您正在构建基于 API 的集成,那么此 ID 是必需的"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "自动解决对话",
+ "NOTE": "通过此项设置,系统可在对话静默一段时间后自动将其解决。",
+ "DURATION": {
+ "LABEL": "无活动持续时间",
+ "HELP": "在无活动后自动结束对话的时间段",
+ "PLACEHOLDER": "30",
+ "ERROR": "自动解决时长应在 10 分钟到 999 天之间",
+ "API": {
+ "SUCCESS": "自动解决设置已成功更新",
+ "ERROR": "更新自动解决设置失败"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "自定义自动解决消息",
+ "PLACEHOLDER": "由于闲置 15 天,对话被系统标记已解决",
+ "HELP": "会话自动解决之后发送给客户的消息"
+ },
+ "PREFERENCES": "偏好设置",
+ "LABEL": {
+ "LABEL": "自动解决后添加标签",
+ "PLACEHOLDER": "选择一个标签"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "跳过等待客服回复的会话"
+ },
+ "UPDATE_BUTTON": "保存修改"
+ },
"NAME": {
"LABEL": "帐户名称",
"PLACEHOLDER": "您的帐户名称",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "您公司的支持邮件",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "排除未参加的对话",
+ "HELP": "启用后,系统将跳过解决仍在等待客服回复的对话。"
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "转录语音消息",
+ "NOTE": "自动转录对话中的语音消息。当发送或收到语音消息时生成转录的文本,并将其显示在消息旁边。",
+ "API": {
+ "SUCCESS": "语音转录设置更新成功",
+ "ERROR": "更新语音转录设置失败"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "非活跃工单的自动结单的天数",
+ "LABEL": "自动解决前的无活动市场",
+ "HELP": "对话无活动时自动解决时长",
"PLACEHOLDER": "30",
- "ERROR": "请输入一个有效的自动解决时间 (至少 1 天,最多999 天)。"
+ "ERROR": "自动解决时长应在 10 分钟到 999 天之间",
+ "API": {
+ "SUCCESS": "自动解决设置已成功更新",
+ "ERROR": "更新自动解决设置失败"
+ },
+ "UPDATE_BUTTON": "更新",
+ "MESSAGE_LABEL": "自定义解决消息",
+ "MESSAGE_PLACEHOLDER": "由于闲置 15 天,对话被系统标记已解决",
+ "MESSAGE_HELP": "当系统因为不活动而自动解决某个对话时,此消息将发送给客户。"
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "您的帐户启用了与电子邮件的对话连续性。",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "Chatwoot 有可用更新{latestChatwootVersion},请更新您的应用。",
"LEARN_MORE": "了解更多",
"PAYMENT_PENDING": "您的付款尚未完成。请更新您的付款信息以继续使用Chatwoot",
+ "UPGRADE": "升级以继续使用 Chatwoot",
"LIMITS_UPGRADE": "您的账户已超过使用限制,请升级您的计划以继续使用Chatwoot",
"OPEN_BILLING": "查看计费"
},
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/helpCenter.json b/app/javascript/dashboard/i18n/locale/zh_CN/helpCenter.json
index ce622ceba..312080073 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "用户指南",
- "ERROR": "Slug是必填项"
+ "ERROR": "Slug是必填项",
+ "FORMAT_ERROR": "请输入有效的 Slug,例如:user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json
index 9768b899a..128379392 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "收件箱名称",
"ADD_NAME": "为收件箱添加名称",
"PICK_NAME": "为收件箱选择一个名称",
- "PICK_A_VALUE": "选择一个数值"
+ "PICK_A_VALUE": "选择一个数值",
+ "CREATE_INBOX": "新增收件箱"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "在 Instagram 中继续",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "连接您的 Instagram 配置文件",
+ "HELP": "若要将您的 Instagram 配置文件添加为通道,您需要点击「继续使用 Instagram」来验证您的 Instagram 配置文件。 ",
+ "ERROR_MESSAGE": "连接到 Instagram 时出错,请重试",
+ "ERROR_AUTH": "连接到 Instagram 时出错,请重试",
+ "NEW_INBOX_SUGGESTION": "这个 Instagram 账户先前已连接到一个不同的收件箱,现在已经迁移到这里。 所有新消息都将出现在这里。旧收件箱将无法再发送或接收此账户的消息。",
+ "DUPLICATE_INBOX_BANNER": "此 Instagram 账户已迁移到新的 Instagram 通道收件箱。您将无法从此收件箱发送/接收 Instagram 消息。"
},
"TWITTER": {
"HELP": "若要将您的Twitter个人资料添加为频道,您需要通过点击“使用Twitter登录”来验证您的Twitter个人资料。 ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "预聊天表单",
"BUSINESS_HOURS": "工作时间",
"WIDGET_BUILDER": "小部件生成器",
- "BOT_CONFIGURATION": "机器人配置"
+ "BOT_CONFIGURATION": "机器人配置",
+ "CSAT": "客户满意度"
},
"SETTINGS": "设置",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "启用电子邮件收集框",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "在新对话中启用或禁用电子邮件收集框",
"AUTO_ASSIGNMENT": "启用自动分配",
- "ENABLE_CSAT": "启用CSAT",
"SENDER_NAME_SECTION": "在电子邮件中启用代理名称",
- "ENABLE_CSAT_SUB_TEXT": "在解决对话后启用/禁用CSAT(客户满意度)调查",
"SENDER_NAME_SECTION_TEXT": "启用/禁用在电子邮件中显示代理名称,如果禁用,将显示业务名称",
"ENABLE_CONTINUITY_VIA_EMAIL": "通过电子邮件启用对话连续性",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "如果有联系人的电子邮件地址,对话将会继续在电子邮件中进行。",
@@ -568,6 +577,32 @@
"LABEL": "访客在开始聊天前应提供他们的姓名和电子邮件地址"
}
},
+ "CSAT": {
+ "TITLE": "启用CSAT",
+ "SUBTITLE": "在对话结束时自动启动 CSAT 问卷,以了解客户如何感觉到他们的支持体验。 跟踪满意的趋势并查明一段时间内需要改进的领域。",
+ "DISPLAY_TYPE": {
+ "LABEL": "显示类型"
+ },
+ "MESSAGE": {
+ "LABEL": "消息",
+ "PLACEHOLDER": "请输入一条消息以将此表格显示给用户"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "问卷规则",
+ "DESCRIPTION_PREFIX": "发送此问卷如果对话",
+ "DESCRIPTION_SUFFIX": "任意标签",
+ "OPERATOR": {
+ "CONTAINS": "包含",
+ "DOES_NOT_CONTAINS": "不包含"
+ },
+ "SELECT_PLACEHOLDER": "选择标签"
+ },
+ "NOTE": "注:每次对话只发送一次 CSAT 问卷",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT 设置更新成功",
+ "ERROR_MESSAGE": "我们无法更新 CSAT 设置。请稍后再试。"
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "设置您的可用性",
"SUBTITLE": "在您的实时聊天小部件上设置您的可用性",
@@ -753,7 +788,8 @@
"EMAIL": "电子邮件",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API 频道"
+ "API": "API 频道",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json b/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json
index f84caef15..53911f104 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "消息已更新",
"WEBWIDGET_TRIGGERED": "用户打开实时聊天小部件",
"CONTACT_CREATED": "联系人已创建",
- "CONTACT_UPDATED": "联系人已更新"
+ "CONTACT_UPDATED": "联系人已更新",
+ "CONVERSATION_TYPING_ON": "对话输入开启",
+ "CONVERSATION_TYPING_OFF": "对话输入关闭"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "问题取消链接成功",
"ERROR": "取消链接问题时出错,请重试"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "您确定要删除该集成吗?",
"MESSAGE": "您确定要删除该集成吗?",
"CONFIRM": "是,删除",
"CANCEL": "取消"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "了解更多",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "尝试这些提示信息",
+ "PANEL_TITLE": "开始使用 Copilot",
+ "KICK_OFF_MESSAGE": "需要快速摘要、回顾过往对话,或是优化回复内容?Copilot 可助您一臂之力,全面提升工作效率。",
"SEND_MESSAGE": "发送消息...",
+ "EMPTY_MESSAGE": "生成响应时出错。请重试。",
"LOADER": "Captain 正在思考",
"YOU": "您",
"USE": "使用此",
"RESET": "重置",
- "SELECT_ASSISTANT": "选择助手"
+ "SHOW_STEPS": "显示步骤",
+ "SELECT_ASSISTANT": "选择助手",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "总结此对话",
+ "CONTENT": "总结客户与客服的对话要点,涵盖客户的主要疑虑、问题,以及客服给出的解决方案或回应"
+ },
+ "SUGGEST": {
+ "LABEL": "建议回答",
+ "CONTENT": "分析客户的咨询,并起草一份有效回应其关切或问题的回复。确保回复内容清晰、简明,并提供有用的信息。"
+ },
+ "RATE": {
+ "LABEL": "为此对话评分",
+ "CONTENT": "请审核对话,评估其在多大程度上满足了客户的需求。根据语气、清晰度和有效性进行 5 分制评分。"
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "高优先级对话",
+ "CONTENT": "请给我所有高优先级未结对话的摘要。包括对话 ID、客户姓名(如有)、最后一条消息内容和分配的客服人员。如有需要,请按状态分组。"
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "列出联系人",
+ "CONTENT": "显示我的前 10 位联系人列表。包括姓名、电子邮件或电话号码(如有)、最后在线时间、标签(如有)。"
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "您",
+ "ASSISTANT": "助手",
+ "MESSAGE_PLACEHOLDER": "输入您的消息...",
+ "HEADER": "试验场",
+ "DESCRIPTION": "使用此试验场向您的助手发送消息,并检查其是否能够准确、快速地以您期望的语气做出回应。",
+ "CREDIT_NOTE": "这里发送的消息将计入您的 Captain 积分。"
},
"PAYWALL": {
"TITLE": "升级以使用 Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "您可以随时更改或取消您的计划"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI 功能仅在付费计划中可用。",
"UPGRADE_PROMPT": "升级您的计划以获取我们的助手、副驾驶等功能。",
"ASK_ADMIN": "请联系您的管理员进行升级。"
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "助手",
+ "NO_ASSISTANTS_AVAILABLE": "您的帐户中没有可用的助手。",
"ADD_NEW": "创建新的助手",
"DELETE": {
"TITLE": "您确定要删除该文档吗?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "创建助手时出错,请重试。"
},
"FORM": {
+ "UPDATE": "更新",
+ "SECTIONS": {
+ "BASIC_INFO": "基本信息",
+ "SYSTEM_MESSAGES": "系统消息",
+ "INSTRUCTIONS": "指令",
+ "FEATURES": "特性",
+ "TOOLS": "工具 "
+ },
"NAME": {
- "LABEL": "助手名称",
- "PLACEHOLDER": "为助手输入一个名称",
- "ERROR": "请提供助手的名称"
+ "LABEL": "姓名:",
+ "PLACEHOLDER": "输入助手名称",
+ "ERROR": "名称是必需的"
+ },
+ "TEMPERATURE": {
+ "LABEL": "响应温度",
+ "DESCRIPTION": "调整助手回复的创造性或限制程度。较低的数值会产生更专注和确定性的回复,而较高的数值则允许更有创意和多样化的输出。"
},
"DESCRIPTION": {
- "LABEL": "助手描述",
- "PLACEHOLDER": "描述助手的用途和使用场景",
+ "LABEL": "描述信息",
+ "PLACEHOLDER": "输入助手描述",
"ERROR": "描述是必需的"
},
"PRODUCT_NAME": {
"LABEL": "产品名称",
- "PLACEHOLDER": "输入此助手设计用于的产品名称",
+ "PLACEHOLDER": "输入产品名称",
"ERROR": "产品名称是必需的"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "欢迎消息",
+ "PLACEHOLDER": "输入欢迎消息"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "交接信息",
+ "PLACEHOLDER": "输入交接消息"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "解决消息",
+ "PLACEHOLDER": "输入解决消息"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "指令",
+ "PLACEHOLDER": "输入用于此助手的指令"
+ },
"FEATURES": {
"TITLE": "特性",
"ALLOW_CONVERSATION_FAQS": "从已解决的对话中生成常见问题",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "更新助手",
"SUCCESS_MESSAGE": "助手已成功更新",
- "ERROR_MESSAGE": "更新助手时出错,请重试"
+ "ERROR_MESSAGE": "更新助手时出错,请重试",
+ "NOT_FOUND": "无法找到助手。请重试。"
},
"OPTIONS": {
"EDIT_ASSISTANT": "编辑助手",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/macros.json b/app/javascript/dashboard/i18n/locale/zh_CN/macros.json
index 8b1663fd9..afad13777 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/macros.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "需要操作参数",
"ATLEAST_ONE_CONDITION_REQUIRED": "至少需要一个条件",
"ATLEAST_ONE_ACTION_REQUIRED": "至少需要一个动作"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "分配团队",
+ "ASSIGN_AGENT": "分配客服",
+ "ADD_LABEL": "添加标签",
+ "REMOVE_LABEL": "移除标签",
+ "REMOVE_ASSIGNED_TEAM": "移除已分配的团队",
+ "SEND_EMAIL_TRANSCRIPT": "通过邮件发送聊天记录",
+ "MUTE_CONVERSATION": "开始会话",
+ "SNOOZE_CONVERSATION": "暂停对话",
+ "RESOLVE_CONVERSATION": "解决对话",
+ "SEND_ATTACHMENT": "发送附件",
+ "SEND_MESSAGE": "发送消息",
+ "CHANGE_PRIORITY": "更改优先级",
+ "ADD_PRIVATE_NOTE": "添加私密注释",
+ "SEND_WEBHOOK_EVENT": "发送 Webhook 事件"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/report.json b/app/javascript/dashboard/i18n/locale/zh_CN/report.json
index 4b8562e7f..7a77d4b23 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/report.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "标签概览",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "正在载入图表数据...",
"NO_ENOUGH_DATA": "我们没有收到足够的数据点来生成报告,请稍后再试。",
"DOWNLOAD_LABEL_REPORTS": "下载标签报表",
@@ -559,6 +560,7 @@
"INBOX": "收件箱",
"AGENT": "客服",
"TEAM": "团队",
+ "LABEL": "标签",
"AVG_RESOLUTION_TIME": "平均解决时间",
"AVG_FIRST_RESPONSE_TIME": "平均首次响应时间",
"AVG_REPLY_TIME": "平均客户等待时间",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/search.json b/app/javascript/dashboard/i18n/locale/zh_CN/search.json
index 44de1798c..4870e551b 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/search.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/search.json
@@ -4,12 +4,14 @@
"ALL": "全部",
"CONTACTS": "联系人",
"CONVERSATIONS": "会话",
- "MESSAGES": "消息"
+ "MESSAGES": "消息",
+ "ARTICLES": "文章"
},
"SECTION": {
"CONTACTS": "联系人",
"CONVERSATIONS": "会话",
- "MESSAGES": "消息"
+ "MESSAGES": "消息",
+ "ARTICLES": "文章"
},
"VIEW_MORE": "查看更多",
"LOAD_MORE": "加载更多",
diff --git a/app/javascript/dashboard/i18n/locale/zh_CN/settings.json b/app/javascript/dashboard/i18n/locale/zh_CN/settings.json
index 4d9e7dd5a..97e288621 100644
--- a/app/javascript/dashboard/i18n/locale/zh_CN/settings.json
+++ b/app/javascript/dashboard/i18n/locale/zh_CN/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "访问令牌",
"NOTE": "如果您正在构建基于 API 的集成,这个令牌可以被使用",
- "COPY": "复制"
+ "COPY": "复制",
+ "RESET": "重置",
+ "CONFIRM_RESET": "您确定吗?",
+ "CONFIRM_HINT": "再次点击以确认",
+ "RESET_SUCCESS": "成功重新生成访问令牌",
+ "RESET_ERROR": "无法重新生成访问令牌。请重试"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "音频提醒",
@@ -185,7 +190,8 @@
"OFFLINE": "离线"
},
"SET_AVAILABILITY_SUCCESS": "可用性已成功设置",
- "SET_AVAILABILITY_ERROR": "无法设置可用性,请重试"
+ "SET_AVAILABILITY_ERROR": "无法设置可用性,请重试",
+ "IMPERSONATING_ERROR": "当您处于模拟用户状态时,无法更改其在线状态"
},
"EMAIL": {
"LABEL": "您的电子邮件地址",
@@ -280,6 +286,7 @@
"REPORTS": "报告",
"SETTINGS": "设置",
"CONTACTS": "联系人",
+ "ACTIVE": "状态",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "助手",
"CAPTAIN_DOCUMENTS": "文档",
@@ -387,7 +394,8 @@
"LABEL": "公司名称",
"PLACEHOLDER": "Wayne企业"
},
- "SUBMIT": "提交"
+ "SUBMIT": "提交",
+ "CANCEL": "取消"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/agentBots.json b/app/javascript/dashboard/i18n/locale/zh_TW/agentBots.json
index fbd85224a..39a4511c0 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/agentBots.json
@@ -2,23 +2,13 @@
"AGENT_BOTS": {
"HEADER": "機器人",
"LOADING_EDITOR": "正在載入編輯器...",
- "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try.You can manage your bots from this page or create new ones using the 'Configure new bot' button.",
+ "DESCRIPTION": "Agent Bots are like the most fabulous members of your team. They can handle the small stuff, so you can focus on the stuff that matters. Give them a try. You can manage your bots from this page or create new ones using the 'Add Bot' button.",
"LEARN_MORE": "Learn about agent bots",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "機器人名稱",
- "PLACEHOLDER": "命名你的機器人",
- "ERROR": "機器人名稱為必填"
- },
- "DESCRIPTION": {
- "LABEL": "機器人描述",
- "PLACEHOLDER": "這個機器人的作用是什麼"
- },
- "BOT_CONFIG": {
- "ERROR": "請在上方輸入你的CSML機器人設定",
- "API_ERROR": "你的CSML設定是無效的。請修正後再試"
- },
- "SUBMIT": "驗證並儲存"
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Bot avatar deleted successfully",
+ "ERROR_DELETE": "Error deleting bot avatar, please try again"
},
"BOT_CONFIGURATION": {
"TITLE": "選擇一個機器人",
@@ -32,7 +22,7 @@
"SELECT_PLACEHOLDER": "選擇機器人"
},
"ADD": {
- "TITLE": "設定新的機器人",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "取消",
"API": {
"SUCCESS_MESSAGE": "機器人新增成功.",
@@ -40,16 +30,22 @@
}
},
"LIST": {
- "404": "查無機器人,你可以點擊「設定新的機器人」按鈕設定一個機器人",
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
"LOADING": "正在取得機器人...",
- "TYPE": "機器人類型"
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook 網址"
+ }
},
"DELETE": {
"BUTTON_TEXT": "刪除",
"TITLE": "刪除機器人",
- "SUBMIT": "刪除",
- "CANCEL_BUTTON_TEXT": "取消",
- "DESCRIPTION": "您確定要刪除此機器人嗎?此操作無法恢復",
+ "CONFIRM": {
+ "TITLE": "確認刪除",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "是,刪除",
+ "NO": "不,保留"
+ },
"API": {
"SUCCESS_MESSAGE": "機器人刪除成功",
"ERROR_MESSAGE": "無法刪除機器人,請再試一次"
@@ -57,17 +53,51 @@
},
"EDIT": {
"BUTTON_TEXT": "編輯",
- "LOADING": "正在取得機器人...",
"TITLE": "編輯機器人",
- "CANCEL_BUTTON_TEXT": "取消",
"API": {
"SUCCESS_MESSAGE": "機器人更新成功.",
"ERROR_MESSAGE": "無法更新機器人,請稍後再試"
}
},
+ "ACCESS_TOKEN": {
+ "TITLE": "訪問 token",
+ "DESCRIPTION": "Copy the access token and save it securely",
+ "COPY_SUCCESSFUL": "Access token copied to clipboard",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "機器人名稱",
+ "PLACEHOLDER": "Enter bot name",
+ "REQUIRED": "機器人名稱為必填"
+ },
+ "DESCRIPTION": {
+ "LABEL": "描述資訊",
+ "PLACEHOLDER": "這個機器人的作用是什麼"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook 網址",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "Webhook URL is required"
+ },
+ "ERRORS": {
+ "NAME": "機器人名稱為必填",
+ "URL": "Webhook URL is required",
+ "VALID_URL": "Please enter a valid URL starting with http:// or https://"
+ },
+ "CANCEL": "取消",
+ "CREATE": "Create Bot",
+ "UPDATE": "Update Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure a webhook bot to integrate with your custom services. The bot will receive and process events from conversations and can respond to them."
+ },
"TYPES": {
- "WEBHOOK": "Webhook 機器人",
- "CSML": "CSML 機器人"
+ "WEBHOOK": "Webhook 機器人"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/auditLogs.json b/app/javascript/dashboard/i18n/locale/zh_TW/auditLogs.json
index f15d93d3f..3ebdf1ae9 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/auditLogs.json
@@ -69,6 +69,9 @@
},
"ACCOUNT": {
"EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/automation.json b/app/javascript/dashboard/i18n/locale/zh_TW/automation.json
index cd5794dad..e9d22cb1a 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/automation.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/automation.json
@@ -126,6 +126,44 @@
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
},
- "NONE_OPTION": "無"
+ "NONE_OPTION": "無",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "SEND_EMAIL_TO_TEAM": "Send an Email to Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "將對話靜音",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "收件匣",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "聯絡人電話",
+ "STATUS": "狀態",
+ "BROWSER_LANGUAGE": "瀏覽器語言",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "國家",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "優先程度"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/components.json b/app/javascript/dashboard/i18n/locale/zh_TW/components.json
index 8631ab450..9d4176c48 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/components.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/components.json
@@ -43,5 +43,11 @@
"FEATURE_SPOTLIGHT": {
"LEARN_MORE": "Learn more",
"WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/contact.json b/app/javascript/dashboard/i18n/locale/zh_TW/contact.json
index b07710249..bdde30a21 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/contact.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/contact.json
@@ -285,6 +285,7 @@
"HEADER": {
"TITLE": "聯絡人",
"SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
"SEARCH_PLACEHOLDER": "Search...",
"MESSAGE_BUTTON": "訊息",
"SEND_MESSAGE": "傳送訊息",
@@ -457,6 +458,10 @@
"PLACEHOLDER": "Add Twitter"
}
}
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
}
},
"DETAILS": {
@@ -466,7 +471,7 @@
"DELETE_CONTACT": "刪除聯絡人",
"DELETE_DIALOG": {
"TITLE": "確認刪除",
- "DESCRIPTION": "Are you sure you want to delete this {contactName} contact?",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
"CONFIRM": "是,刪除",
"API": {
"SUCCESS_MESSAGE": "聯絡人刪除成功",
@@ -544,6 +549,9 @@
"WROTE": "wrote",
"YOU": "You",
"SAVE": "Save note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
"EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above."
}
},
@@ -552,7 +560,8 @@
"SUBTITLE": "Start adding new contacts by clicking on the button below",
"BUTTON_LABEL": "Add contact",
"SEARCH_EMPTY_STATE_TITLE": "找不到符合條件的聯絡人 🔍",
- "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋"
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
}
},
"COMPOSE_NEW_CONVERSATION": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json b/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json
index fd5ec7190..8e8082846 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/conversation.json
@@ -32,10 +32,12 @@
"LOADING_CONVERSATIONS": "加載更多對話",
"CANNOT_REPLY": "您不能回覆,原因是:",
"24_HOURS_WINDOW": "24 小時消息視窗限制",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
"ASSIGN_TO_ME": "指定給我",
"TWILIO_WHATSAPP_CAN_REPLY": "You can only reply to this conversation using a template message due to",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 小時消息視窗限制",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. All new messages will show up there. You won’t be able to send messages from this conversation anymore.",
"REPLYING_TO": "你正在回覆到:",
"REMOVE_SELECTION": "移除選擇項目",
"DOWNLOAD": "下載",
@@ -68,6 +70,7 @@
"RESOLVE_ACTION": "已解決",
"REOPEN_ACTION": "重新打開",
"OPEN_ACTION": "打開",
+ "MORE_ACTIONS": "More actions",
"OPEN": "詳細資訊",
"CLOSE": "關閉",
"DETAILS": "詳情",
@@ -115,6 +118,11 @@
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "刪除"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "標記為待處理",
"RESOLVED": "Mark as resolved",
@@ -131,6 +139,7 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
"API": {
"AGENT_ASSIGNMENT": {
"SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
@@ -205,6 +214,8 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "寄送者:",
@@ -293,9 +304,11 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "對話標記",
"CONVERSATION_INFO": "對話資訊",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "聯絡人屬性",
"PREVIOUS_CONVERSATION": "上一次對話",
"MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
"SHOPIFY_ORDERS": "Shopify Orders"
},
"SHOPIFY": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/general.json b/app/javascript/dashboard/i18n/locale/zh_TW/general.json
index cefe266b4..dcc5eb2a1 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/general.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/general.json
@@ -4,6 +4,7 @@
"PHONE_INPUT": {
"PLACEHOLDER": "搜尋",
"EMPTY_STATE": "No results found"
- }
+ },
+ "CLOSE": "關閉"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/generalSettings.json b/app/javascript/dashboard/i18n/locale/zh_TW/generalSettings.json
index 19ec09542..b4f4d0d74 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/generalSettings.json
@@ -1,5 +1,11 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "You have exceeded the conversation limit. Hacker plan allows only 500 conversations.",
+ "INBOXES": "You have exceeded the inbox limit. Hacker plan only supports website live-chat. Additional inboxes like email, WhatsApp etc. require a paid plan.",
+ "AGENTS": "You have exceeded the agent limit. Hacker plan allows only 2 agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "帳戶設定",
"SUBMIT": "更新設定",
"BACK": "返回",
@@ -8,6 +14,26 @@
"ERROR": "無法更新設定,請重試!",
"SUCCESS": "已成功更新帳戶設定"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Delete your Account",
+ "NOTE": "Once you delete your account, all your data will be deleted.",
+ "BUTTON_TEXT": "Delete Your Account",
+ "CONFIRM": {
+ "TITLE": "Delete Account",
+ "MESSAGE": "Deleting your Account is irreversible. Enter your account name below to confirm you want to permanently delete it.",
+ "BUTTON_TEXT": "刪除",
+ "DISMISS": "取消",
+ "PLACE_HOLDER": "請輸入 {accountName} 以確認"
+ },
+ "SUCCESS": "Account marked for deletion",
+ "FAILURE": "Could not delete account, try again!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account Scheduled for Deletion",
+ "MESSAGE_MANUAL": "This account is scheduled for deletion on {deletionDate}. This was requested by an administrator. You can cancel the deletion before this date.",
+ "MESSAGE_INACTIVITY": "This account is scheduled for deletion on {deletionDate} due to account inactivity. You can cancel the deletion before this date.",
+ "CLEAR_BUTTON": "Cancel Scheduled Deletion"
+ }
+ },
"FORM": {
"ERROR": "請修正表單錯誤",
"GENERAL_SECTION": {
@@ -18,6 +44,34 @@
"TITLE": "Account ID",
"NOTE": "This ID is required if you are building an API based integration"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "This configuration would allow you to automatically resolve the conversation after a certain period of inactivity.",
+ "DURATION": {
+ "LABEL": "Inactivity duration",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "Preferences",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "Select a label"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "Save Changes"
+ },
"NAME": {
"LABEL": "帳戶名稱",
"PLACEHOLDER": "您的帳戶名稱",
@@ -38,10 +92,31 @@
"PLACEHOLDER": "您公司的客服信箱",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Exclude unattended conversations",
+ "HELP": "When enabled, the system will skip resolving conversations that are still waiting for an agent's reply."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcribe Audio Messages",
+ "NOTE": "Automatically transcribe audio messages in conversations. Generate a text transcript whenever an audio message is sent or received, and display it alongside the message.",
+ "API": {
+ "SUCCESS": "Audio transcription setting updated successfully",
+ "ERROR": "Failed to update audio transcription setting"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Number of days after a ticket should auto resolve if there is no activity",
+ "LABEL": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "Auto resolve duration should be between 10 minutes and 999 days",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "更新",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Conversation was marked resolved by system due to 15 days of inactivity",
+ "MESSAGE_HELP": "This message is sent to the customer when a conversation is automatically resolved by the system due to inactivity."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "您的帳戶啟用了電子信箱與對話的持續性功能。",
@@ -51,6 +126,7 @@
"UPDATE_CHATWOOT": "An update {latestChatwootVersion} for Chatwoot is available. Please update your instance.",
"LEARN_MORE": "Learn more",
"PAYMENT_PENDING": "Your payment is pending. Please update your payment information to continue using Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
"LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
"OPEN_BILLING": "Open billing"
},
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/helpCenter.json b/app/javascript/dashboard/i18n/locale/zh_TW/helpCenter.json
index d7f6a5b33..0dc927ec4 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/helpCenter.json
@@ -696,7 +696,8 @@
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "user-guide",
- "ERROR": "Slug is required"
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
}
},
"PORTAL_SETTINGS": {
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json
index 6e0bf80ac..0490d2aa8 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/inboxMgmt.json
@@ -43,7 +43,17 @@
"INBOX_NAME": "收件匣名稱",
"ADD_NAME": "為收件匣新增名稱",
"PICK_NAME": "Pick a Name for your Inbox",
- "PICK_A_VALUE": "選擇一個數值"
+ "PICK_A_VALUE": "選擇一個數值",
+ "CREATE_INBOX": "新增收件匣"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continue with Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Connect your Instagram Profile",
+ "HELP": "To add your Instagram profile as a channel, you need to authenticate your Instagram Profile by clicking on 'Continue with Instagram' ",
+ "ERROR_MESSAGE": "There was an error connecting to Instagram, please try again",
+ "ERROR_AUTH": "There was an error connecting to Instagram, please try again",
+ "NEW_INBOX_SUGGESTION": "This Instagram account was previously linked to a different inbox and has now been migrated here. All new messages will appear here. The old inbox will no longer be able to send or receive messages for this account.",
+ "DUPLICATE_INBOX_BANNER": "This Instagram account was migrated to the new Instagram channel inbox. You won’t be able to send/receive Instagram messages from this inbox anymore."
},
"TWITTER": {
"HELP": "若要將您的 Twitter 個人資料建立為頻道,您需要通過點擊“使用 Twitter 登入”來驗證您的 Twitter 個人資料。 ",
@@ -471,7 +481,8 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "服務時間",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "增機器人設定"
+ "BOT_CONFIGURATION": "增機器人設定",
+ "CSAT": "顧客滿意度得分(CSAT)"
},
"SETTINGS": "設定",
"FEATURES": {
@@ -492,9 +503,7 @@
"ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
"AUTO_ASSIGNMENT": "啟用自動分配",
- "ENABLE_CSAT": "Enable CSAT",
"SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "Enable/Disable CSAT(Customer satisfaction) survey after resolving a conversation",
"SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
"ENABLE_CONTINUITY_VIA_EMAIL": "Enable conversation continuity via email",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversations will continue over email if the contact email address is available.",
@@ -568,6 +577,32 @@
"LABEL": "Visitors should provide their name and email address before starting the chat"
}
},
+ "CSAT": {
+ "TITLE": "Enable CSAT",
+ "SUBTITLE": "Automatically trigger CSAT surveys at the end of conversations to understand how customers feel about their support experience. Track satisfaction trends and identify areas for improvement over time.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Display type"
+ },
+ "MESSAGE": {
+ "LABEL": "訊息",
+ "PLACEHOLDER": "Please enter a message to show users with the form"
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Survey rule",
+ "DESCRIPTION_PREFIX": "Send the survey if the conversation",
+ "DESCRIPTION_SUFFIX": "any of the labels",
+ "OPERATOR": {
+ "CONTAINS": "包含",
+ "DOES_NOT_CONTAINS": "不包含"
+ },
+ "SELECT_PLACEHOLDER": "select labels"
+ },
+ "NOTE": "Note: CSAT surveys are sent only once per conversation",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "設定你的服務時間",
"SUBTITLE": "為你的 livechat 小工具設定服務時間",
@@ -753,7 +788,8 @@
"EMAIL": "Email",
"TELEGRAM": "Telegram",
"LINE": "Line",
- "API": "API 頻道"
+ "API": "API 頻道",
+ "INSTAGRAM": "Instagram"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json b/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json
index b6ca474bb..3d6150301 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/integrations.json
@@ -41,7 +41,9 @@
"MESSAGE_UPDATED": "Message updated",
"WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
"CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_UPDATED": "Contact updated",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off"
}
},
"END_POINT": {
@@ -316,11 +318,18 @@
"SUCCESS": "Issue unlinked successfully",
"ERROR": "There was an error unlinking the issue, please try again"
},
+ "NO_LINKED_ISSUES": "No linked issues found",
"DELETE": {
"TITLE": "Are you sure you want to delete the integration?",
"MESSAGE": "Are you sure you want to delete the integration?",
"CONFIRM": "是的,刪除",
"CANCEL": "取消"
+ },
+ "CTA": {
+ "TITLE": "Connect to Linear",
+ "AGENT_DESCRIPTION": "Linear workspace is not connected. Request your administrator to connect a workspace to use this integration.",
+ "DESCRIPTION": "Linear workspace is not connected. Click the button below to connect your workspace to use this integration.",
+ "BUTTON_TEXT": "Connect Linear workspace"
}
}
},
@@ -328,12 +337,48 @@
"NAME": "Captain",
"HEADER_KNOW_MORE": "Know more",
"COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Get started with Copilot",
+ "KICK_OFF_MESSAGE": "Need a quick summary, want to check past conversations, or draft a better reply? Copilot’s here to speed things up.",
"SEND_MESSAGE": "傳送訊息...",
+ "EMPTY_MESSAGE": "There was an error generating the response. Please try again.",
"LOADER": "Captain is thinking",
"YOU": "You",
"USE": "Use this",
"RESET": "Reset",
- "SELECT_ASSISTANT": "Select Assistant"
+ "SHOW_STEPS": "Show steps",
+ "SELECT_ASSISTANT": "Select Assistant",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Summarize this conversation",
+ "CONTENT": "Summarize the key points discussed between the customer and the support agent, including the customer's concerns, questions, and the solutions or responses provided by the support agent"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggest an answer",
+ "CONTENT": "Analyze the customer's inquiry, and draft a response that effectively addresses their concerns or questions. Ensure the reply is clear, concise, and provides helpful information."
+ },
+ "RATE": {
+ "LABEL": "Rate this conversation",
+ "CONTENT": "Review the conversation to see how well it meets the customer's needs. Share a rating out of 5 based on tone, clarity, and effectiveness."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "High priority conversations",
+ "CONTENT": "Give me a summary of all high priority open conversations. Include the conversation ID, customer name (if available), last message content, and assigned agent. Group by status if relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "List contacts",
+ "CONTENT": "Show me the list of top 10 contacts. Include name, email or phone number (if available), last seen time, tags (if any)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Assistant",
+ "MESSAGE_PLACEHOLDER": "輸入你的訊息...",
+ "HEADER": "Playground",
+ "DESCRIPTION": "Use this playground to send messages to your assistant and check if it responds accurately, quickly, and in the tone you expect.",
+ "CREDIT_NOTE": "Messages sent here will count toward your Captain credits."
},
"PAYWALL": {
"TITLE": "Upgrade to use Captain AI",
@@ -343,7 +388,6 @@
"CANCEL_ANYTIME": "You can change or cancel your plan anytime"
},
"ENTERPRISE_PAYWALL": {
- "AVAILABLE_ON": "Captain AI feature is only available in a paid plan.",
"UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
"ASK_ADMIN": "Please reach out to your administrator for the upgrade."
},
@@ -358,6 +402,7 @@
},
"ASSISTANTS": {
"HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
"ADD_NEW": "Create a new assistant",
"DELETE": {
"TITLE": "Are you sure to delete the assistant?",
@@ -373,21 +418,49 @@
"ERROR_MESSAGE": "There was an error creating the assistant, please try again."
},
"FORM": {
+ "UPDATE": "更新",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "Features",
+ "TOOLS": "Tools "
+ },
"NAME": {
- "LABEL": "Assistant Name",
- "PLACEHOLDER": "Enter a name for the assistant",
- "ERROR": "Please provide a name for the assistant"
+ "LABEL": "姓名",
+ "PLACEHOLDER": "Enter assistant name",
+ "ERROR": "The name is required"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Response Temperature",
+ "DESCRIPTION": "Adjust how creative or restrictive the assistant's responses should be. Lower values produce more focused and deterministic responses, while higher values allow for more creative and varied outputs."
},
"DESCRIPTION": {
- "LABEL": "Assistant Description",
- "PLACEHOLDER": "Describe how and where this assistant will be used",
- "ERROR": "A description is required"
+ "LABEL": "描述資訊",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
},
"PRODUCT_NAME": {
"LABEL": "Product Name",
- "PLACEHOLDER": "Enter the name of the product this assistant is designed for",
+ "PLACEHOLDER": "Enter product name",
"ERROR": "The product name is required"
},
+ "WELCOME_MESSAGE": {
+ "LABEL": "Welcome Message",
+ "PLACEHOLDER": "Enter welcome message"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Handoff Message",
+ "PLACEHOLDER": "Enter handoff message"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Resolution Message",
+ "PLACEHOLDER": "Enter resolution message"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instructions",
+ "PLACEHOLDER": "Enter instructions for the assistant"
+ },
"FEATURES": {
"TITLE": "Features",
"ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
@@ -397,7 +470,8 @@
"EDIT": {
"TITLE": "Update the assistant",
"SUCCESS_MESSAGE": "The assistant has been successfully updated",
- "ERROR_MESSAGE": "There was an error updating the assistant, please try again."
+ "ERROR_MESSAGE": "There was an error updating the assistant, please try again.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
},
"OPTIONS": {
"EDIT_ASSISTANT": "Edit Assistant",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/macros.json b/app/javascript/dashboard/i18n/locale/zh_TW/macros.json
index f9533f37c..a5ad2ea07 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/macros.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/macros.json
@@ -83,6 +83,22 @@
"ACTION_PARAMETERS_REQUIRED": "Action parameters are required",
"ATLEAST_ONE_CONDITION_REQUIRED": "At least one condition is required",
"ATLEAST_ONE_ACTION_REQUIRED": "At least one action is required"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assign a Team",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Add a Label",
+ "REMOVE_LABEL": "Remove a Label",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Send an Email Transcript",
+ "MUTE_CONVERSATION": "將對話靜音",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "Send Attachment",
+ "SEND_MESSAGE": "Send a Message",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Send Webhook Event"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/report.json b/app/javascript/dashboard/i18n/locale/zh_TW/report.json
index 3837817fa..b1f9032f5 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/report.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/report.json
@@ -193,6 +193,7 @@
},
"LABEL_REPORTS": {
"HEADER": "Labels Overview",
+ "DESCRIPTION": "Track label performance with key metrics including conversations, response times, resolution times, and resolved cases. Click a label name for detailed insights.",
"LOADING_CHART": "正在載入图表數據...",
"NO_ENOUGH_DATA": "我們没有收到足夠的數據來生成報表,請稍後再試。",
"DOWNLOAD_LABEL_REPORTS": "Download label reports",
@@ -559,6 +560,7 @@
"INBOX": "收件匣",
"AGENT": "客服",
"TEAM": "Team",
+ "LABEL": "Label",
"AVG_RESOLUTION_TIME": "Avg. Resolution Time",
"AVG_FIRST_RESPONSE_TIME": "Avg. First Response Time",
"AVG_REPLY_TIME": "Avg. Customer Waiting Time",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/search.json b/app/javascript/dashboard/i18n/locale/zh_TW/search.json
index 7a434e552..f94719070 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/search.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/search.json
@@ -4,12 +4,14 @@
"ALL": "所有的",
"CONTACTS": "聯絡人",
"CONVERSATIONS": "對話",
- "MESSAGES": "訊息"
+ "MESSAGES": "訊息",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "聯絡人",
"CONVERSATIONS": "對話",
- "MESSAGES": "訊息"
+ "MESSAGES": "訊息",
+ "ARTICLES": "Articles"
},
"VIEW_MORE": "View more",
"LOAD_MORE": "Load more",
diff --git a/app/javascript/dashboard/i18n/locale/zh_TW/settings.json b/app/javascript/dashboard/i18n/locale/zh_TW/settings.json
index e8896322c..bae56bbe1 100644
--- a/app/javascript/dashboard/i18n/locale/zh_TW/settings.json
+++ b/app/javascript/dashboard/i18n/locale/zh_TW/settings.json
@@ -76,7 +76,12 @@
"ACCESS_TOKEN": {
"TITLE": "訪問 token",
"NOTE": "如果要構建基於 API 的整合,則可以使用此 token",
- "COPY": "複製"
+ "COPY": "複製",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate access token. Please try again"
},
"AUDIO_NOTIFICATIONS_SECTION": {
"TITLE": "音效通知",
@@ -185,7 +190,8 @@
"OFFLINE": "離線"
},
"SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "您的電子信箱地址",
@@ -280,6 +286,7 @@
"REPORTS": "報表",
"SETTINGS": "設定",
"CONTACTS": "聯絡人",
+ "ACTIVE": "Active",
"CAPTAIN": "Captain",
"CAPTAIN_ASSISTANTS": "Assistants",
"CAPTAIN_DOCUMENTS": "Documents",
@@ -387,7 +394,8 @@
"LABEL": "公司名稱",
"PLACEHOLDER": "Wayne 企業"
},
- "SUBMIT": "送出"
+ "SUBMIT": "送出",
+ "CANCEL": "取消"
}
},
"KEYBOARD_SHORTCUTS": {
diff --git a/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue b/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue
index 5c051869a..ababf1588 100644
--- a/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue
+++ b/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue
@@ -47,6 +47,7 @@ export default {
emits: ['open', 'close', 'replyTo'],
setup() {
const { getPlainText } = useMessageFormatter();
+
return {
getPlainText,
};
@@ -167,7 +168,7 @@ export default {
-
+
{{ config.welcomeHeading }}
-
- {{ config.welcomeTagline }}
-
+
diff --git a/app/javascript/dashboard/routes/dashboard/Dashboard.vue b/app/javascript/dashboard/routes/dashboard/Dashboard.vue
index 7de36102b..475fc9ee3 100644
--- a/app/javascript/dashboard/routes/dashboard/Dashboard.vue
+++ b/app/javascript/dashboard/routes/dashboard/Dashboard.vue
@@ -25,6 +25,8 @@ const Sidebar = defineAsyncComponent(
() => import('../../components/layout/Sidebar.vue')
);
import { emitter } from 'shared/helpers/mitt';
+import CopilotLauncher from 'dashboard/components-next/copilot/CopilotLauncher.vue';
+import CopilotContainer from 'dashboard/components/copilot/CopilotContainer.vue';
export default {
components: {
@@ -37,6 +39,8 @@ export default {
AddLabelModal,
NotificationPanel,
UpgradePage,
+ CopilotLauncher,
+ CopilotContainer,
},
setup() {
const upgradePageRef = ref(null);
@@ -219,6 +223,9 @@ export default {
+
+
+
{
diff --git a/app/javascript/dashboard/routes/dashboard/captain/assistants/Edit.vue b/app/javascript/dashboard/routes/dashboard/captain/assistants/Edit.vue
new file mode 100644
index 000000000..8b64e2663
--- /dev/null
+++ b/app/javascript/dashboard/routes/dashboard/captain/assistants/Edit.vue
@@ -0,0 +1,71 @@
+
+
+
+
+
+
+ {{ t('CAPTAIN.ASSISTANTS.EDIT.NOT_FOUND') }}
+
+
+
+
+
diff --git a/app/javascript/dashboard/routes/dashboard/captain/assistants/Index.vue b/app/javascript/dashboard/routes/dashboard/captain/assistants/Index.vue
index 242e6f086..800783a7b 100644
--- a/app/javascript/dashboard/routes/dashboard/captain/assistants/Index.vue
+++ b/app/javascript/dashboard/routes/dashboard/captain/assistants/Index.vue
@@ -36,8 +36,10 @@ const handleCreate = () => {
};
const handleEdit = () => {
- dialogType.value = 'edit';
- nextTick(() => createAssistantDialog.value.dialogRef.open());
+ router.push({
+ name: 'captain_assistants_edit',
+ params: { assistantId: selectedAssistant.value.id },
+ });
};
const handleViewConnectedInboxes = () => {
diff --git a/app/javascript/dashboard/routes/dashboard/captain/captain.routes.js b/app/javascript/dashboard/routes/dashboard/captain/captain.routes.js
index cf7751751..17afeca14 100644
--- a/app/javascript/dashboard/routes/dashboard/captain/captain.routes.js
+++ b/app/javascript/dashboard/routes/dashboard/captain/captain.routes.js
@@ -2,6 +2,7 @@ import { FEATURE_FLAGS } from 'dashboard/featureFlags';
import { INSTALLATION_TYPES } from 'dashboard/constants/installationTypes';
import { frontendURL } from '../../../helper/URLHelper';
import AssistantIndex from './assistants/Index.vue';
+import AssistantEdit from './assistants/Edit.vue';
import AssistantInboxesIndex from './assistants/inboxes/Index.vue';
import DocumentsIndex from './documents/Index.vue';
import ResponsesIndex from './responses/Index.vue';
@@ -20,6 +21,19 @@ export const routes = [
],
},
},
+ {
+ path: frontendURL('accounts/:accountId/captain/assistants/:assistantId'),
+ component: AssistantEdit,
+ name: 'captain_assistants_edit',
+ meta: {
+ permissions: ['administrator', 'agent'],
+ featureFlag: FEATURE_FLAGS.CAPTAIN,
+ installationTypes: [
+ INSTALLATION_TYPES.CLOUD,
+ INSTALLATION_TYPES.ENTERPRISE,
+ ],
+ },
+ },
{
path: frontendURL(
'accounts/:accountId/captain/assistants/:assistantId/inboxes'
diff --git a/app/javascript/dashboard/routes/dashboard/contacts/pages/ContactsIndex.vue b/app/javascript/dashboard/routes/dashboard/contacts/pages/ContactsIndex.vue
index 76ae7eb4e..33a3d4fd5 100644
--- a/app/javascript/dashboard/routes/dashboard/contacts/pages/ContactsIndex.vue
+++ b/app/javascript/dashboard/routes/dashboard/contacts/pages/ContactsIndex.vue
@@ -67,9 +67,11 @@ const hasContacts = computed(() => contacts.value.length > 0);
const isContactIndexView = computed(
() => route.name === 'contacts_dashboard_index' && pageNumber.value === 1
);
+const isActiveView = computed(() => route.name === 'contacts_dashboard_active');
const hasAppliedFilters = computed(() => {
return appliedFilters.value.length > 0;
});
+
const showEmptyStateLayout = computed(() => {
return (
!searchQuery.value &&
@@ -89,11 +91,20 @@ const showEmptyText = computed(() => {
const headerTitle = computed(() => {
if (searchQuery.value) return t('CONTACTS_LAYOUT.HEADER.SEARCH_TITLE');
+ if (isActiveView.value) return t('CONTACTS_LAYOUT.HEADER.ACTIVE_TITLE');
if (activeSegmentId.value) return activeSegment.value?.name;
if (activeLabel.value) return `#${activeLabel.value}`;
return t('CONTACTS_LAYOUT.HEADER.TITLE');
});
+const emptyStateMessage = computed(() => {
+ if (isActiveView.value)
+ return t('CONTACTS_LAYOUT.EMPTY_STATE.ACTIVE_EMPTY_STATE_TITLE');
+ if (!searchQuery.value || hasAppliedFilters.value)
+ return t('CONTACTS_LAYOUT.EMPTY_STATE.LIST_EMPTY_STATE_TITLE');
+ return t('CONTACTS_LAYOUT.EMPTY_STATE.SEARCH_EMPTY_STATE_TITLE');
+});
+
const updatePageParam = (page, search = '') => {
const query = {
...route.query,
@@ -132,6 +143,15 @@ const fetchSavedOrAppliedFilteredContact = async (payload, page = 1) => {
updatePageParam(page);
};
+const fetchActiveContacts = async (page = 1) => {
+ await store.dispatch('contacts/clearContactFilters');
+ await store.dispatch('contacts/active', {
+ page,
+ sortAttr: buildSortAttr(),
+ });
+ updatePageParam(page);
+};
+
const searchContacts = debounce(async (value, page = 1) => {
await store.dispatch('contacts/clearContactFilters');
searchValue.value = value;
@@ -158,6 +178,11 @@ const fetchContactsBasedOnContext = async page => {
}
// Reset the search value when we change the view
searchValue.value = '';
+ // If we're on the active route, fetch active contacts
+ if (isActiveView.value) {
+ await fetchActiveContacts(page);
+ return;
+ }
// If there are applied filters or active segment with query
if (
(hasAppliedFilters.value || activeSegment.value?.query) &&
@@ -184,6 +209,11 @@ const handleSort = async ({ sort, order }) => {
return;
}
+ if (isActiveView.value) {
+ await fetchActiveContacts();
+ return;
+ }
+
await (activeSegmentId.value || hasAppliedFilters.value
? fetchSavedOrAppliedFilteredContact(
activeSegmentId.value
@@ -210,7 +240,7 @@ watch(
);
watch(
- [activeLabel, activeSegment],
+ [activeLabel, activeSegment, isActiveView],
() => {
fetchContactsBasedOnContext(pageNumber.value);
},
@@ -222,6 +252,13 @@ watch(searchQuery, value => {
searchValue.value = value || '';
// Reset the view if there is search query when we click on the sidebar group
if (value === undefined) {
+ if (
+ isActiveView.value ||
+ activeLabel.value ||
+ activeSegment.value ||
+ hasAppliedFilters.value
+ )
+ return;
fetchContacts();
}
});
@@ -232,6 +269,10 @@ onMounted(async () => {
await searchContacts(searchQuery.value, pageNumber.value);
return;
}
+ if (isActiveView.value) {
+ await fetchActiveContacts(pageNumber.value);
+ return;
+ }
await fetchContacts(pageNumber.value);
} else if (activeSegment.value && activeSegmentId.value) {
await fetchSavedOrAppliedFilteredContact(
@@ -286,11 +327,7 @@ onMounted(async () => {
class="flex items-center justify-center py-10"
>
- {{
- searchQuery || !hasAppliedFilters
- ? t('CONTACTS_LAYOUT.EMPTY_STATE.SEARCH_EMPTY_STATE_TITLE')
- : t('CONTACTS_LAYOUT.EMPTY_STATE.LIST_EMPTY_STATE_TITLE')
- }}
+ {{ emptyStateMessage }}
diff --git a/app/javascript/dashboard/routes/dashboard/contacts/routes.js b/app/javascript/dashboard/routes/dashboard/contacts/routes.js
index 3610117a5..27de6ed15 100644
--- a/app/javascript/dashboard/routes/dashboard/contacts/routes.js
+++ b/app/javascript/dashboard/routes/dashboard/contacts/routes.js
@@ -32,6 +32,12 @@ export const routes = [
component: ContactsIndex,
meta: commonMeta,
},
+ {
+ path: 'active',
+ name: 'contacts_dashboard_active',
+ component: ContactsIndex,
+ meta: commonMeta,
+ },
],
},
{
diff --git a/app/javascript/dashboard/routes/dashboard/conversation/ContactPanel.vue b/app/javascript/dashboard/routes/dashboard/conversation/ContactPanel.vue
index 5f7ef9cfa..64191eab5 100644
--- a/app/javascript/dashboard/routes/dashboard/conversation/ContactPanel.vue
+++ b/app/javascript/dashboard/routes/dashboard/conversation/ContactPanel.vue
@@ -11,13 +11,17 @@ import AccordionItem from 'dashboard/components/Accordion/AccordionItem.vue';
import ContactConversations from './ContactConversations.vue';
import ConversationAction from './ConversationAction.vue';
import ConversationParticipant from './ConversationParticipant.vue';
-
import ContactInfo from './contact/ContactInfo.vue';
+import ContactNotes from './contact/ContactNotes.vue';
import ConversationInfo from './ConversationInfo.vue';
import CustomAttributes from './customAttributes/CustomAttributes.vue';
import Draggable from 'vuedraggable';
import MacrosList from './Macros/List.vue';
-import ShopifyOrdersList from '../../../components/widgets/conversation/ShopifyOrdersList.vue';
+import ShopifyOrdersList from 'dashboard/components/widgets/conversation/ShopifyOrdersList.vue';
+import SidebarActionsHeader from 'dashboard/components-next/SidebarActionsHeader.vue';
+import LinearIssuesList from 'dashboard/components/widgets/conversation/linear/IssuesList.vue';
+import LinearSetupCTA from 'dashboard/components/widgets/conversation/linear/LinearSetupCTA.vue';
+import { FEATURE_FLAGS } from 'dashboard/featureFlags';
const props = defineProps({
conversationId: {
@@ -28,10 +32,6 @@ const props = defineProps({
type: Number,
default: undefined,
},
- onToggle: {
- type: Function,
- default: () => {},
- },
});
const {
@@ -43,6 +43,13 @@ const {
const dragging = ref(false);
const conversationSidebarItems = ref([]);
+
+const currentAccountId = useMapGetter('getCurrentAccountId');
+
+const isFeatureEnabledonAccount = useMapGetter(
+ 'accounts/isFeatureEnabledonAccount'
+);
+
const shopifyIntegration = useFunctionGetter(
'integrations/getIntegration',
'shopify'
@@ -52,6 +59,20 @@ const isShopifyFeatureEnabled = computed(
() => shopifyIntegration.value.enabled
);
+const linearIntegration = useFunctionGetter(
+ 'integrations/getIntegration',
+ 'linear'
+);
+
+const isLinearIntegrationEnabled = computed(
+ () => linearIntegration.value?.enabled || false
+);
+
+const isLinearFeatureEnabled = isFeatureEnabledonAccount.value(
+ currentAccountId.value,
+ FEATURE_FLAGS.LINEAR
+);
+
const store = useStore();
const currentChat = useMapGetter('getSelectedChat');
const conversationId = computed(() => props.conversationId);
@@ -80,16 +101,12 @@ const getContactDetails = () => {
}
};
-watch(conversationId, (newConversationId, prevConversationId) => {
- if (newConversationId && newConversationId !== prevConversationId) {
+watch(contactId, (newContactId, prevContactId) => {
+ if (newContactId && newContactId !== prevContactId) {
getContactDetails();
}
});
-watch(contactId, getContactDetails);
-
-const onPanelToggle = props.onToggle;
-
const onDragEnd = () => {
dragging.value = false;
updateUISettings({
@@ -97,21 +114,30 @@ const onDragEnd = () => {
});
};
+const closeContactPanel = () => {
+ updateUISettings({
+ is_contact_sidebar_open: false,
+ is_copilot_panel_open: false,
+ });
+};
+
onMounted(() => {
conversationSidebarItems.value = conversationSidebarItemsOrder.value;
getContactDetails();
store.dispatch('attributes/get', 0);
+ // Load integrations to ensure linear integration state is available
+ store.dispatch('integrations/get', 'linear');
});
-
-
+
+
{
@end="onDragEnd"
>
-
-
-
toggleSidebarUIState('is_conv_actions_open', value)
- "
- >
-
-
-
-
-
- toggleSidebarUIState('is_conv_participants_open', value)
- "
- >
-
-
-
-
-
toggleSidebarUIState('is_conv_details_open', value)
- "
- >
-
-
-
-
-
- toggleSidebarUIState('is_contact_attributes_open', value)
- "
- >
-
-
-
-
-
toggleSidebarUIState('is_previous_conv_open', value)
- "
- >
-
-
-
-
- toggleSidebarUIState('is_macro_open', value)"
- >
-
-
-
-
+
toggleSidebarUIState('is_conv_actions_open', value)
"
>
- toggleSidebarUIState('is_shopify_orders_open', value)
+
+
+
+
+
+ toggleSidebarUIState('is_conv_participants_open', value)
+ "
+ >
+
+
+
+
+
toggleSidebarUIState('is_conv_details_open', value)
+ "
+ >
+
+
+
+
+
+ toggleSidebarUIState('is_contact_attributes_open', value)
+ "
+ >
+
-
-
-
+ />
+
+
+
+
toggleSidebarUIState('is_previous_conv_open', value)
+ "
+ >
+
+
+
+
+ toggleSidebarUIState('is_macro_open', value)"
+ >
+
+
+
+
+
toggleSidebarUIState('is_linear_issues_open', value)
+ "
+ >
+
+
+
+
+
+
toggleSidebarUIState('is_shopify_orders_open', value)
+ "
+ >
+
+
+
+
+
toggleSidebarUIState('is_contact_notes_open', value)
+ "
+ >
+
+
diff --git a/app/javascript/dashboard/routes/dashboard/conversation/ConversationView.vue b/app/javascript/dashboard/routes/dashboard/conversation/ConversationView.vue
index d0e1610e9..14b1f37d1 100644
--- a/app/javascript/dashboard/routes/dashboard/conversation/ConversationView.vue
+++ b/app/javascript/dashboard/routes/dashboard/conversation/ConversationView.vue
@@ -10,6 +10,8 @@ import { BUS_EVENTS } from 'shared/constants/busEvents';
import CmdBarConversationSnooze from 'dashboard/routes/dashboard/commands/CmdBarConversationSnooze.vue';
import { emitter } from 'shared/helpers/mitt';
import { FEATURE_FLAGS } from 'dashboard/featureFlags';
+import SidepanelSwitch from 'dashboard/components-next/Conversation/SidepanelSwitch.vue';
+import ConversationSidebar from 'dashboard/components/widgets/conversation/ConversationSidebar.vue';
export default {
components: {
@@ -17,6 +19,8 @@ export default {
ConversationBox,
PopOverSearch,
CmdBarConversationSnooze,
+ SidepanelSwitch,
+ ConversationSidebar,
},
beforeRouteLeave(to, from, next) {
// Clear selected state if navigating away from a conversation to a route without a conversationId to prevent stale data issues
@@ -87,13 +91,14 @@ export default {
this.uiSettings;
return conversationDisplayType !== CONDENSED;
},
- isContactPanelOpen() {
- if (this.currentChat.id) {
- const { is_contact_sidebar_open: isContactSidebarOpen } =
- this.uiSettings;
- return isContactSidebarOpen;
+
+ shouldShowSidebar() {
+ if (!this.currentChat.id) {
+ return false;
}
- return false;
+
+ const { is_contact_sidebar_open: isContactSidebarOpen } = this.uiSettings;
+ return isContactSidebarOpen;
},
showPopOverSearch() {
return !this.isFeatureEnabledonAccount(
@@ -120,6 +125,7 @@ export default {
mounted() {
this.$store.dispatch('agents/get');
+ this.$store.dispatch('portals/index');
this.initialize();
this.$watch('$store.state.route', () => this.initialize());
this.$watch('chatList.length', () => {
@@ -188,11 +194,6 @@ export default {
this.$store.dispatch('clearSelectedState');
}
},
- onToggleContactPanel() {
- this.updateUISettings({
- is_contact_sidebar_open: !this.isContactPanelOpen,
- });
- },
onSearch() {
this.showSearchModal = true;
},
@@ -204,7 +205,7 @@ export default {
-
diff --git a/app/javascript/dashboard/routes/dashboard/conversation/contact/ContactNotes.vue b/app/javascript/dashboard/routes/dashboard/conversation/contact/ContactNotes.vue
new file mode 100644
index 000000000..66b6876b1
--- /dev/null
+++ b/app/javascript/dashboard/routes/dashboard/conversation/contact/ContactNotes.vue
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
{{ t('CONTACTS_LAYOUT.SIDEBAR.NOTES.NO_NOTES') }}
+
+
+
+
+
diff --git a/app/javascript/dashboard/routes/dashboard/conversation/customAttributes/CustomAttributes.vue b/app/javascript/dashboard/routes/dashboard/conversation/customAttributes/CustomAttributes.vue
index 3225f1bac..8fca4bded 100644
--- a/app/javascript/dashboard/routes/dashboard/conversation/customAttributes/CustomAttributes.vue
+++ b/app/javascript/dashboard/routes/dashboard/conversation/customAttributes/CustomAttributes.vue
@@ -80,17 +80,13 @@ const filteredCustomAttributes = computed(() =>
customAttributes.value,
attribute.attribute_key
);
- const isCheckbox = attribute.attribute_display_type === 'checkbox';
- const defaultValue = isCheckbox ? false : '';
return {
...attribute,
type: 'custom_attribute',
key: attribute.attribute_key,
- // Set value from customAttributes if it exists, otherwise use default value
- value: hasValue
- ? customAttributes.value[attribute.attribute_key]
- : defaultValue,
+ // Set value from customAttributes if it exists, otherwise use ''
+ value: hasValue ? customAttributes.value[attribute.attribute_key] : '',
};
})
);
@@ -215,7 +211,7 @@ const onUpdate = async (key, value) => {
} else {
store.dispatch('contacts/update', {
id: props.contactId,
- custom_attributes: updatedAttributes,
+ customAttributes: updatedAttributes,
});
}
useAlert(t('CUSTOM_ATTRIBUTES.FORM.UPDATE.SUCCESS'));
diff --git a/app/javascript/dashboard/routes/dashboard/helpcenter/components/ArticleSearch/SearchPopover.vue b/app/javascript/dashboard/routes/dashboard/helpcenter/components/ArticleSearch/SearchPopover.vue
index 809e58249..f54db1597 100644
--- a/app/javascript/dashboard/routes/dashboard/helpcenter/components/ArticleSearch/SearchPopover.vue
+++ b/app/javascript/dashboard/routes/dashboard/helpcenter/components/ArticleSearch/SearchPopover.vue
@@ -1,6 +1,7 @@
-
-
-
-
- {{ $t('GENERAL_SETTINGS.SUBMIT') }}
-
-
-
-
-
diff --git a/app/javascript/dashboard/routes/dashboard/settings/reports/LabelReportsIndex.vue b/app/javascript/dashboard/routes/dashboard/settings/reports/LabelReportsIndex.vue
new file mode 100644
index 000000000..956b30974
--- /dev/null
+++ b/app/javascript/dashboard/routes/dashboard/settings/reports/LabelReportsIndex.vue
@@ -0,0 +1,35 @@
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/routes/dashboard/settings/reports/LabelReportsShow.vue b/app/javascript/dashboard/routes/dashboard/settings/reports/LabelReportsShow.vue
new file mode 100644
index 000000000..678028410
--- /dev/null
+++ b/app/javascript/dashboard/routes/dashboard/settings/reports/LabelReportsShow.vue
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/routes/dashboard/settings/reports/components/ConversationCell.vue b/app/javascript/dashboard/routes/dashboard/settings/reports/components/ConversationCell.vue
index 5d6cbcb8d..5342d75e4 100644
--- a/app/javascript/dashboard/routes/dashboard/settings/reports/components/ConversationCell.vue
+++ b/app/javascript/dashboard/routes/dashboard/settings/reports/components/ConversationCell.vue
@@ -1,4 +1,6 @@
diff --git a/app/javascript/dashboard/routes/dashboard/settings/reports/components/CsatTable.vue b/app/javascript/dashboard/routes/dashboard/settings/reports/components/CsatTable.vue
index b66ec20f6..8beeafd70 100644
--- a/app/javascript/dashboard/routes/dashboard/settings/reports/components/CsatTable.vue
+++ b/app/javascript/dashboard/routes/dashboard/settings/reports/components/CsatTable.vue
@@ -47,14 +47,17 @@ const tableData = computed(() => {
}));
});
-const defaulSpanRender = cellProps =>
- h(
+const defaultSpanRender = cellProps => {
+ const value = cellProps.getValue() || '---';
+ return h(
'span',
{
- class: cellProps.getValue() ? '' : 'text-slate-300 dark:text-slate-700',
+ class: 'line-clamp-5 break-words max-w-full text-n-slate-12',
+ title: value,
},
- cellProps.getValue() ? cellProps.getValue() : '---'
+ value
);
+};
const columnHelper = createColumnHelper();
@@ -65,7 +68,10 @@ const columns = [
cell: cellProps => {
const { contact } = cellProps.row.original;
if (contact) {
- return h(UserAvatarWithName, { user: contact });
+ return h(UserAvatarWithName, {
+ user: contact,
+ class: 'max-w-[200px] overflow-hidden',
+ });
}
return '--';
},
@@ -76,7 +82,10 @@ const columns = [
cell: cellProps => {
const { assignedAgent } = cellProps.row.original;
if (assignedAgent) {
- return h(UserAvatarWithName, { user: assignedAgent });
+ return h(UserAvatarWithName, {
+ user: assignedAgent,
+ class: 'max-w-[200px] overflow-hidden',
+ });
}
return '--';
},
@@ -105,7 +114,7 @@ const columns = [
columnHelper.accessor('feedbackText', {
header: t('CSAT_REPORTS.TABLE.HEADER.FEEDBACK_TEXT'),
width: 400,
- cell: defaulSpanRender,
+ cell: defaultSpanRender,
}),
columnHelper.accessor('conversationId', {
header: '',
diff --git a/app/javascript/dashboard/routes/dashboard/settings/reports/components/ReportsWrapper.vue b/app/javascript/dashboard/routes/dashboard/settings/reports/components/ReportsWrapper.vue
index dc9941246..1465ceada 100644
--- a/app/javascript/dashboard/routes/dashboard/settings/reports/components/ReportsWrapper.vue
+++ b/app/javascript/dashboard/routes/dashboard/settings/reports/components/ReportsWrapper.vue
@@ -1,7 +1,5 @@
-
+
diff --git a/app/javascript/dashboard/routes/dashboard/settings/reports/components/SummaryReports.vue b/app/javascript/dashboard/routes/dashboard/settings/reports/components/SummaryReports.vue
index 4c0c4fe64..7e0b9be8f 100644
--- a/app/javascript/dashboard/routes/dashboard/settings/reports/components/SummaryReports.vue
+++ b/app/javascript/dashboard/routes/dashboard/settings/reports/components/SummaryReports.vue
@@ -108,7 +108,8 @@ const tableData = computed(() =>
} = rowMetrics;
return {
id: row.id,
- name: row.name,
+ // we fallback on title, label for instance does not have a name property
+ name: row.name ?? row.title,
type: props.type,
conversationsCount: renderCount(conversationsCount),
avgFirstResponseTime: renderAvgTime(avgFirstResponseTime),
@@ -177,7 +178,7 @@ defineExpose({ downloadReports });
diff --git a/app/javascript/dashboard/routes/dashboard/settings/reports/reports.routes.js b/app/javascript/dashboard/routes/dashboard/settings/reports/reports.routes.js
index 43855240c..af01f6d74 100644
--- a/app/javascript/dashboard/routes/dashboard/settings/reports/reports.routes.js
+++ b/app/javascript/dashboard/routes/dashboard/settings/reports/reports.routes.js
@@ -7,10 +7,12 @@ import Index from './Index.vue';
import AgentReportsIndex from './AgentReportsIndex.vue';
import InboxReportsIndex from './InboxReportsIndex.vue';
import TeamReportsIndex from './TeamReportsIndex.vue';
+import LabelReportsIndex from './LabelReportsIndex.vue';
import AgentReportsShow from './AgentReportsShow.vue';
import InboxReportsShow from './InboxReportsShow.vue';
import TeamReportsShow from './TeamReportsShow.vue';
+import LabelReportsShow from './LabelReportsShow.vue';
import AgentReports from './AgentReports.vue';
import InboxReports from './InboxReports.vue';
@@ -104,6 +106,22 @@ const revisedReportRoutes = [
},
component: TeamReportsShow,
},
+ {
+ path: 'labels_overview',
+ name: 'label_reports_index',
+ meta: {
+ permissions: ['administrator', 'report_manage'],
+ },
+ component: LabelReportsIndex,
+ },
+ {
+ path: 'labels/:id',
+ name: 'label_reports_show',
+ meta: {
+ permissions: ['administrator', 'report_manage'],
+ },
+ component: LabelReportsShow,
+ },
];
export default {
diff --git a/app/javascript/dashboard/store/captain/copilotMessages.js b/app/javascript/dashboard/store/captain/copilotMessages.js
new file mode 100644
index 000000000..2b296cdc1
--- /dev/null
+++ b/app/javascript/dashboard/store/captain/copilotMessages.js
@@ -0,0 +1,19 @@
+import CopilotMessagesAPI from 'dashboard/api/captain/copilotMessages';
+import { createStore } from './storeFactory';
+
+export default createStore({
+ name: 'CopilotMessages',
+ API: CopilotMessagesAPI,
+ getters: {
+ getMessagesByThreadId: state => copilotThreadId => {
+ return state.records
+ .filter(record => record.copilot_thread?.id === Number(copilotThreadId))
+ .sort((a, b) => a.id - b.id);
+ },
+ },
+ actions: mutationTypes => ({
+ upsert({ commit }, data) {
+ commit(mutationTypes.UPSERT, data);
+ },
+ }),
+});
diff --git a/app/javascript/dashboard/store/captain/copilotThreads.js b/app/javascript/dashboard/store/captain/copilotThreads.js
new file mode 100644
index 000000000..8d820f305
--- /dev/null
+++ b/app/javascript/dashboard/store/captain/copilotThreads.js
@@ -0,0 +1,7 @@
+import CopilotThreadsAPI from 'dashboard/api/captain/copilotThreads';
+import { createStore } from './storeFactory';
+
+export default createStore({
+ name: 'CopilotThreads',
+ API: CopilotThreadsAPI,
+});
diff --git a/app/javascript/dashboard/store/captain/storeFactory.js b/app/javascript/dashboard/store/captain/storeFactory.js
index a55522062..ad669f62b 100644
--- a/app/javascript/dashboard/store/captain/storeFactory.js
+++ b/app/javascript/dashboard/store/captain/storeFactory.js
@@ -1,5 +1,11 @@
-import { throwErrorMessage } from 'dashboard/store/utils/api';
import * as MutationHelpers from 'shared/helpers/vuex/mutationHelpers';
+import {
+ createRecord,
+ deleteRecord,
+ getRecords,
+ showRecord,
+ updateRecord,
+} from './storeFactoryHelper';
export const generateMutationTypes = name => {
const capitalizedName = name.toUpperCase();
@@ -10,6 +16,7 @@ export const generateMutationTypes = name => {
EDIT: `EDIT_${capitalizedName}`,
DELETE: `DELETE_${capitalizedName}`,
SET_META: `SET_${capitalizedName}_META`,
+ UPSERT: `UPSERT_${capitalizedName}`,
};
};
@@ -33,7 +40,6 @@ export const createGetters = () => ({
getMeta: state => state.meta,
});
-// store/mutations.js
export const createMutations = mutationTypes => ({
[mutationTypes.SET_UI_FLAG](state, data) {
state.uiFlags = {
@@ -51,78 +57,19 @@ export const createMutations = mutationTypes => ({
[mutationTypes.ADD]: MutationHelpers.create,
[mutationTypes.EDIT]: MutationHelpers.update,
[mutationTypes.DELETE]: MutationHelpers.destroy,
+ [mutationTypes.UPSERT]: MutationHelpers.setSingleRecord,
});
-// store/actions/crud.js
export const createCrudActions = (API, mutationTypes) => ({
- async get({ commit }, params = {}) {
- commit(mutationTypes.SET_UI_FLAG, { fetchingList: true });
- try {
- const response = await API.get(params);
- commit(mutationTypes.SET, response.data.payload);
- commit(mutationTypes.SET_META, response.data.meta);
- return response.data.payload;
- } catch (error) {
- return throwErrorMessage(error);
- } finally {
- commit(mutationTypes.SET_UI_FLAG, { fetchingList: false });
- }
- },
-
- async show({ commit }, id) {
- commit(mutationTypes.SET_UI_FLAG, { fetchingItem: true });
- try {
- const response = await API.show(id);
- commit(mutationTypes.ADD, response.data);
- return response.data;
- } catch (error) {
- return throwErrorMessage(error);
- } finally {
- commit(mutationTypes.SET_UI_FLAG, { fetchingItem: false });
- }
- },
-
- async create({ commit }, dataObj) {
- commit(mutationTypes.SET_UI_FLAG, { creatingItem: true });
- try {
- const response = await API.create(dataObj);
- commit(mutationTypes.ADD, response.data);
- return response.data;
- } catch (error) {
- return throwErrorMessage(error);
- } finally {
- commit(mutationTypes.SET_UI_FLAG, { creatingItem: false });
- }
- },
-
- async update({ commit }, { id, ...updateObj }) {
- commit(mutationTypes.SET_UI_FLAG, { updatingItem: true });
- try {
- const response = await API.update(id, updateObj);
- commit(mutationTypes.EDIT, response.data);
- return response.data;
- } catch (error) {
- return throwErrorMessage(error);
- } finally {
- commit(mutationTypes.SET_UI_FLAG, { updatingItem: false });
- }
- },
-
- async delete({ commit }, id) {
- commit(mutationTypes.SET_UI_FLAG, { deletingItem: true });
- try {
- await API.delete(id);
- commit(mutationTypes.DELETE, id);
- return id;
- } catch (error) {
- return throwErrorMessage(error);
- } finally {
- commit(mutationTypes.SET_UI_FLAG, { deletingItem: false });
- }
- },
+ get: getRecords(mutationTypes, API),
+ show: showRecord(mutationTypes, API),
+ create: createRecord(mutationTypes, API),
+ update: updateRecord(mutationTypes, API),
+ delete: deleteRecord(mutationTypes, API),
});
+
export const createStore = options => {
- const { name, API, actions } = options;
+ const { name, API, actions, getters } = options;
const mutationTypes = generateMutationTypes(name);
const customActions = actions ? actions(mutationTypes) : {};
@@ -130,7 +77,10 @@ export const createStore = options => {
return {
namespaced: true,
state: createInitialState(),
- getters: createGetters(),
+ getters: {
+ ...createGetters(),
+ ...(getters || {}),
+ },
mutations: createMutations(mutationTypes),
actions: {
...createCrudActions(API, mutationTypes),
diff --git a/app/javascript/dashboard/store/captain/storeFactory.spec.js b/app/javascript/dashboard/store/captain/storeFactory.spec.js
new file mode 100644
index 000000000..0aec26e40
--- /dev/null
+++ b/app/javascript/dashboard/store/captain/storeFactory.spec.js
@@ -0,0 +1,380 @@
+import { throwErrorMessage } from 'dashboard/store/utils/api';
+import * as MutationHelpers from 'shared/helpers/vuex/mutationHelpers';
+import {
+ generateMutationTypes,
+ createInitialState,
+ createGetters,
+ createMutations,
+ createCrudActions,
+ createStore,
+} from './storeFactory';
+
+vi.mock('dashboard/store/utils/api', () => ({
+ throwErrorMessage: vi.fn(),
+}));
+
+vi.mock('shared/helpers/vuex/mutationHelpers', () => ({
+ set: vi.fn(),
+ create: vi.fn(),
+ update: vi.fn(),
+ destroy: vi.fn(),
+ setSingleRecord: vi.fn(),
+}));
+
+describe('storeFactory', () => {
+ describe('generateMutationTypes', () => {
+ it('generates correct mutation types with capitalized name', () => {
+ const result = generateMutationTypes('test');
+ expect(result).toEqual({
+ SET_UI_FLAG: 'SET_TEST_UI_FLAG',
+ SET: 'SET_TEST',
+ ADD: 'ADD_TEST',
+ EDIT: 'EDIT_TEST',
+ DELETE: 'DELETE_TEST',
+ SET_META: 'SET_TEST_META',
+ UPSERT: 'UPSERT_TEST',
+ });
+ });
+ });
+
+ describe('createInitialState', () => {
+ it('returns the correct initial state structure', () => {
+ const result = createInitialState();
+ expect(result).toEqual({
+ records: [],
+ meta: {},
+ uiFlags: {
+ fetchingList: false,
+ fetchingItem: false,
+ creatingItem: false,
+ updatingItem: false,
+ deletingItem: false,
+ },
+ });
+ });
+ });
+
+ describe('createGetters', () => {
+ it('returns getters with correct implementations', () => {
+ const getters = createGetters();
+
+ const state = {
+ records: [{ id: 2 }, { id: 1 }, { id: 3 }],
+ uiFlags: { fetchingList: true },
+ meta: { totalCount: 10, page: 1 },
+ };
+ expect(getters.getRecords(state)).toEqual([
+ { id: 3 },
+ { id: 2 },
+ { id: 1 },
+ ]);
+
+ expect(getters.getRecord(state)(2)).toEqual({ id: 2 });
+ expect(getters.getRecord(state)(4)).toEqual({});
+
+ expect(getters.getUIFlags(state)).toEqual({
+ fetchingList: true,
+ });
+
+ expect(getters.getMeta(state)).toEqual({
+ totalCount: 10,
+ page: 1,
+ });
+ });
+ });
+
+ describe('createMutations', () => {
+ it('creates mutations with correct implementations', () => {
+ const mutationTypes = generateMutationTypes('test');
+ const mutations = createMutations(mutationTypes);
+
+ const state = { uiFlags: { fetchingList: false } };
+ mutations[mutationTypes.SET_UI_FLAG](state, { fetchingList: true });
+ expect(state.uiFlags).toEqual({ fetchingList: true });
+
+ const metaState = { meta: {} };
+ mutations[mutationTypes.SET_META](metaState, {
+ total_count: '10',
+ page: '2',
+ });
+ expect(metaState.meta).toEqual({ totalCount: 10, page: 2 });
+
+ expect(mutations[mutationTypes.SET]).toBe(MutationHelpers.set);
+ expect(mutations[mutationTypes.ADD]).toBe(MutationHelpers.create);
+ expect(mutations[mutationTypes.EDIT]).toBe(MutationHelpers.update);
+ expect(mutations[mutationTypes.DELETE]).toBe(MutationHelpers.destroy);
+ expect(mutations[mutationTypes.UPSERT]).toBe(
+ MutationHelpers.setSingleRecord
+ );
+ });
+ });
+
+ describe('createCrudActions', () => {
+ let API;
+ let commit;
+ let mutationTypes;
+ let actions;
+
+ beforeEach(() => {
+ API = {
+ get: vi.fn(),
+ show: vi.fn(),
+ create: vi.fn(),
+ update: vi.fn(),
+ delete: vi.fn(),
+ };
+ commit = vi.fn();
+ mutationTypes = generateMutationTypes('test');
+ actions = createCrudActions(API, mutationTypes);
+ });
+
+ describe('get action', () => {
+ it('handles successful API response', async () => {
+ const payload = [{ id: 1 }];
+ const meta = { total_count: 10, page: 1 };
+ API.get.mockResolvedValue({ data: { payload, meta } });
+
+ const result = await actions.get({ commit });
+
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ fetchingList: true,
+ });
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET, payload);
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_META, meta);
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ fetchingList: false,
+ });
+ expect(result).toEqual(payload);
+ });
+
+ it('handles API error', async () => {
+ const error = new Error('API Error');
+ API.get.mockRejectedValue(error);
+ throwErrorMessage.mockReturnValue('Error thrown');
+
+ const result = await actions.get({ commit });
+
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ fetchingList: true,
+ });
+ expect(throwErrorMessage).toHaveBeenCalledWith(error);
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ fetchingList: false,
+ });
+ expect(result).toEqual('Error thrown');
+ });
+ });
+
+ describe('show action', () => {
+ it('handles successful API response', async () => {
+ const data = { id: 1, name: 'Test' };
+ API.show.mockResolvedValue({ data });
+
+ const result = await actions.show({ commit }, 1);
+
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ fetchingItem: true,
+ });
+ expect(commit).toHaveBeenCalledWith(mutationTypes.ADD, data);
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ fetchingItem: false,
+ });
+ expect(result).toEqual(data);
+ });
+
+ it('handles API error', async () => {
+ const error = new Error('API Error');
+ API.show.mockRejectedValue(error);
+ throwErrorMessage.mockReturnValue('Error thrown');
+
+ const result = await actions.show({ commit }, 1);
+
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ fetchingItem: true,
+ });
+ expect(throwErrorMessage).toHaveBeenCalledWith(error);
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ fetchingItem: false,
+ });
+ expect(result).toEqual('Error thrown');
+ });
+ });
+
+ describe('create action', () => {
+ it('handles successful API response', async () => {
+ const data = { id: 1, name: 'Test' };
+ API.create.mockResolvedValue({ data });
+
+ const result = await actions.create({ commit }, { name: 'Test' });
+
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ creatingItem: true,
+ });
+ expect(commit).toHaveBeenCalledWith(mutationTypes.UPSERT, data);
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ creatingItem: false,
+ });
+ expect(result).toEqual(data);
+ });
+
+ it('handles API error', async () => {
+ const error = new Error('API Error');
+ API.create.mockRejectedValue(error);
+ throwErrorMessage.mockReturnValue('Error thrown');
+
+ const result = await actions.create({ commit }, { name: 'Test' });
+
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ creatingItem: true,
+ });
+ expect(throwErrorMessage).toHaveBeenCalledWith(error);
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ creatingItem: false,
+ });
+ expect(result).toEqual('Error thrown');
+ });
+ });
+
+ describe('update action', () => {
+ it('handles successful API response', async () => {
+ const data = { id: 1, name: 'Updated' };
+ API.update.mockResolvedValue({ data });
+
+ const result = await actions.update(
+ { commit },
+ { id: 1, name: 'Updated' }
+ );
+
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ updatingItem: true,
+ });
+ expect(API.update).toHaveBeenCalledWith(1, { name: 'Updated' });
+ expect(commit).toHaveBeenCalledWith(mutationTypes.EDIT, data);
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ updatingItem: false,
+ });
+ expect(result).toEqual(data);
+ });
+
+ it('handles API error', async () => {
+ const error = new Error('API Error');
+ API.update.mockRejectedValue(error);
+ throwErrorMessage.mockReturnValue('Error thrown');
+
+ const result = await actions.update(
+ { commit },
+ { id: 1, name: 'Updated' }
+ );
+
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ updatingItem: true,
+ });
+ expect(throwErrorMessage).toHaveBeenCalledWith(error);
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ updatingItem: false,
+ });
+ expect(result).toEqual('Error thrown');
+ });
+ });
+
+ describe('delete action', () => {
+ it('handles successful API response', async () => {
+ API.delete.mockResolvedValue({});
+
+ const result = await actions.delete({ commit }, 1);
+
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ deletingItem: true,
+ });
+ expect(API.delete).toHaveBeenCalledWith(1);
+ expect(commit).toHaveBeenCalledWith(mutationTypes.DELETE, 1);
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ deletingItem: false,
+ });
+ expect(result).toEqual(1);
+ });
+
+ it('handles API error', async () => {
+ const error = new Error('API Error');
+ API.delete.mockRejectedValue(error);
+ throwErrorMessage.mockReturnValue('Error thrown');
+
+ const result = await actions.delete({ commit }, 1);
+
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ deletingItem: true,
+ });
+ expect(throwErrorMessage).toHaveBeenCalledWith(error);
+ expect(commit).toHaveBeenCalledWith(mutationTypes.SET_UI_FLAG, {
+ deletingItem: false,
+ });
+ expect(result).toEqual('Error thrown');
+ });
+ });
+ });
+
+ describe('createStore', () => {
+ it('creates a complete store with default options', () => {
+ const API = {};
+ const store = createStore({ name: 'test', API });
+
+ expect(store.namespaced).toBe(true);
+ expect(store.state).toEqual(createInitialState());
+ expect(Object.keys(store.getters)).toEqual([
+ 'getRecords',
+ 'getRecord',
+ 'getUIFlags',
+ 'getMeta',
+ ]);
+ expect(Object.keys(store.mutations)).toEqual([
+ 'SET_TEST_UI_FLAG',
+ 'SET_TEST_META',
+ 'SET_TEST',
+ 'ADD_TEST',
+ 'EDIT_TEST',
+ 'DELETE_TEST',
+ 'UPSERT_TEST',
+ ]);
+ expect(Object.keys(store.actions)).toEqual([
+ 'get',
+ 'show',
+ 'create',
+ 'update',
+ 'delete',
+ ]);
+ });
+
+ it('creates a store with custom actions and getters', () => {
+ const API = {};
+ const customGetters = { customGetter: () => 'custom' };
+ const customActions = () => ({
+ customAction: () => 'custom',
+ });
+
+ const store = createStore({
+ name: 'test',
+ API,
+ getters: customGetters,
+ actions: customActions,
+ });
+
+ expect(store.getters).toHaveProperty('customGetter');
+ expect(store.actions).toHaveProperty('customAction');
+ expect(Object.keys(store.getters)).toEqual([
+ 'getRecords',
+ 'getRecord',
+ 'getUIFlags',
+ 'getMeta',
+ 'customGetter',
+ ]);
+ expect(Object.keys(store.actions)).toEqual([
+ 'get',
+ 'show',
+ 'create',
+ 'update',
+ 'delete',
+ 'customAction',
+ ]);
+ });
+ });
+});
diff --git a/app/javascript/dashboard/store/captain/storeFactoryHelper.js b/app/javascript/dashboard/store/captain/storeFactoryHelper.js
new file mode 100644
index 000000000..7a04d2e81
--- /dev/null
+++ b/app/javascript/dashboard/store/captain/storeFactoryHelper.js
@@ -0,0 +1,77 @@
+import { throwErrorMessage } from 'dashboard/store/utils/api';
+
+export const getRecords =
+ (mutationTypes, API) =>
+ async ({ commit }, params = {}) => {
+ commit(mutationTypes.SET_UI_FLAG, { fetchingList: true });
+ try {
+ const response = await API.get(params);
+ commit(mutationTypes.SET, response.data.payload);
+ commit(mutationTypes.SET_META, response.data.meta);
+ return response.data.payload;
+ } catch (error) {
+ return throwErrorMessage(error);
+ } finally {
+ commit(mutationTypes.SET_UI_FLAG, { fetchingList: false });
+ }
+ };
+
+export const showRecord =
+ (mutationTypes, API) =>
+ async ({ commit }, id) => {
+ commit(mutationTypes.SET_UI_FLAG, { fetchingItem: true });
+ try {
+ const response = await API.show(id);
+ commit(mutationTypes.ADD, response.data);
+ return response.data;
+ } catch (error) {
+ return throwErrorMessage(error);
+ } finally {
+ commit(mutationTypes.SET_UI_FLAG, { fetchingItem: false });
+ }
+ };
+
+export const createRecord =
+ (mutationTypes, API) =>
+ async ({ commit }, dataObj) => {
+ commit(mutationTypes.SET_UI_FLAG, { creatingItem: true });
+ try {
+ const response = await API.create(dataObj);
+ commit(mutationTypes.UPSERT, response.data);
+ return response.data;
+ } catch (error) {
+ return throwErrorMessage(error);
+ } finally {
+ commit(mutationTypes.SET_UI_FLAG, { creatingItem: false });
+ }
+ };
+
+export const updateRecord =
+ (mutationTypes, API) =>
+ async ({ commit }, { id, ...updateObj }) => {
+ commit(mutationTypes.SET_UI_FLAG, { updatingItem: true });
+ try {
+ const response = await API.update(id, updateObj);
+ commit(mutationTypes.EDIT, response.data);
+ return response.data;
+ } catch (error) {
+ return throwErrorMessage(error);
+ } finally {
+ commit(mutationTypes.SET_UI_FLAG, { updatingItem: false });
+ }
+ };
+
+export const deleteRecord =
+ (mutationTypes, API) =>
+ async ({ commit }, id) => {
+ commit(mutationTypes.SET_UI_FLAG, { deletingItem: true });
+ try {
+ await API.delete(id);
+ commit(mutationTypes.DELETE, id);
+ return id;
+ } catch (error) {
+ return throwErrorMessage(error);
+ } finally {
+ commit(mutationTypes.SET_UI_FLAG, { deletingItem: false });
+ }
+ };
diff --git a/app/javascript/dashboard/store/index.js b/app/javascript/dashboard/store/index.js
index 5daf73ae1..960285ebf 100755
--- a/app/javascript/dashboard/store/index.js
+++ b/app/javascript/dashboard/store/index.js
@@ -51,6 +51,9 @@ import captainDocuments from './captain/document';
import captainResponses from './captain/response';
import captainInboxes from './captain/inboxes';
import captainBulkActions from './captain/bulkActions';
+import copilotThreads from './captain/copilotThreads';
+import copilotMessages from './captain/copilotMessages';
+
const plugins = [];
export default createStore({
@@ -106,6 +109,8 @@ export default createStore({
captainResponses,
captainInboxes,
captainBulkActions,
+ copilotThreads,
+ copilotMessages,
},
plugins,
});
diff --git a/app/javascript/dashboard/store/modules/accounts.js b/app/javascript/dashboard/store/modules/accounts.js
index 561695d28..0d5fdc748 100644
--- a/app/javascript/dashboard/store/modules/accounts.js
+++ b/app/javascript/dashboard/store/modules/accounts.js
@@ -63,10 +63,14 @@ export const actions = {
});
}
},
- update: async ({ commit }, updateObj) => {
- commit(types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: true });
+ update: async ({ commit }, { options, ...updateObj }) => {
+ if (options?.silent !== true) {
+ commit(types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: true });
+ }
+
try {
- await AccountAPI.update('', updateObj);
+ const response = await AccountAPI.update('', updateObj);
+ commit(types.default.EDIT_ACCOUNT, response.data);
commit(types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: false });
} catch (error) {
commit(types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: false });
diff --git a/app/javascript/dashboard/store/modules/agentBots.js b/app/javascript/dashboard/store/modules/agentBots.js
index 3e9931057..bd7bff5f0 100644
--- a/app/javascript/dashboard/store/modules/agentBots.js
+++ b/app/javascript/dashboard/store/modules/agentBots.js
@@ -172,6 +172,17 @@ export const actions = {
commit(types.SET_AGENT_BOT_UI_FLAG, { isDisconnecting: false });
}
},
+
+ resetAccessToken: async ({ commit }, botId) => {
+ try {
+ const response = await AgentBotsAPI.resetAccessToken(botId);
+ commit(types.EDIT_AGENT_BOT, response.data);
+ return response.data;
+ } catch (error) {
+ throwErrorMessage(error);
+ return null;
+ }
+ },
};
export const mutations = {
diff --git a/app/javascript/dashboard/store/modules/auth.js b/app/javascript/dashboard/store/modules/auth.js
index fa49af339..91338d938 100644
--- a/app/javascript/dashboard/store/modules/auth.js
+++ b/app/javascript/dashboard/store/modules/auth.js
@@ -2,6 +2,8 @@ import types from '../mutation-types';
import authAPI from '../../api/auth';
import { setUser, clearCookiesOnLogout } from '../utils/api';
+import SessionStorage from 'shared/helpers/sessionStorage';
+import { SESSION_STORAGE_KEYS } from 'dashboard/constants/sessionStorage';
const initialState = {
currentUser: {
@@ -133,6 +135,16 @@ export const actions = {
}
},
+ updatePassword: async ({ commit }, params) => {
+ // eslint-disable-next-line no-useless-catch
+ try {
+ const response = await authAPI.profilePasswordUpdate(params);
+ commit(types.SET_CURRENT_USER, response.data);
+ } catch (error) {
+ throw error;
+ }
+ },
+
deleteAvatar: async ({ commit }) => {
try {
const response = await authAPI.deleteAvatar();
@@ -145,8 +157,15 @@ export const actions = {
updateUISettings: async ({ commit }, params) => {
try {
commit(types.SET_CURRENT_USER_UI_SETTINGS, params);
- const response = await authAPI.updateUISettings(params);
- commit(types.SET_CURRENT_USER, response.data);
+
+ const isImpersonating = SessionStorage.get(
+ SESSION_STORAGE_KEYS.IMPERSONATION_USER
+ );
+
+ if (!isImpersonating) {
+ const response = await authAPI.updateUISettings(params);
+ commit(types.SET_CURRENT_USER, response.data);
+ }
} catch (error) {
// Ignore error
}
@@ -204,6 +223,16 @@ export const actions = {
}
},
+ resetAccessToken: async ({ commit }) => {
+ try {
+ const response = await authAPI.resetAccessToken();
+ commit(types.SET_CURRENT_USER, response.data);
+ return true;
+ } catch (error) {
+ return false;
+ }
+ },
+
resendConfirmation: async () => {
try {
await authAPI.resendConfirmation();
diff --git a/app/javascript/dashboard/store/modules/contacts/actions.js b/app/javascript/dashboard/store/modules/contacts/actions.js
index e8da81482..02911d9d9 100644
--- a/app/javascript/dashboard/store/modules/contacts/actions.js
+++ b/app/javascript/dashboard/store/modules/contacts/actions.js
@@ -75,6 +75,21 @@ export const actions = {
}
},
+ active: async ({ commit }, { page = 1, sortAttr } = {}) => {
+ commit(types.SET_CONTACT_UI_FLAG, { isFetching: true });
+ try {
+ const {
+ data: { payload, meta },
+ } = await ContactAPI.active(page, sortAttr);
+ commit(types.CLEAR_CONTACTS);
+ commit(types.SET_CONTACTS, payload);
+ commit(types.SET_CONTACT_META, meta);
+ commit(types.SET_CONTACT_UI_FLAG, { isFetching: false });
+ } catch (error) {
+ commit(types.SET_CONTACT_UI_FLAG, { isFetching: false });
+ }
+ },
+
show: async ({ commit }, { id }) => {
commit(types.SET_CONTACT_UI_FLAG, { isFetchingItem: true });
try {
diff --git a/app/javascript/dashboard/store/modules/conversationSearch.js b/app/javascript/dashboard/store/modules/conversationSearch.js
index b4d540fbe..d1d739076 100644
--- a/app/javascript/dashboard/store/modules/conversationSearch.js
+++ b/app/javascript/dashboard/store/modules/conversationSearch.js
@@ -5,12 +5,14 @@ export const initialState = {
contactRecords: [],
conversationRecords: [],
messageRecords: [],
+ articleRecords: [],
uiFlags: {
isFetching: false,
isSearchCompleted: false,
contact: { isFetching: false },
conversation: { isFetching: false },
message: { isFetching: false },
+ article: { isFetching: false },
},
};
@@ -27,6 +29,9 @@ export const getters = {
getMessageRecords(state) {
return state.messageRecords;
},
+ getArticleRecords(state) {
+ return state.articleRecords;
+ },
getUIFlags(state) {
return state.uiFlags;
},
@@ -65,6 +70,7 @@ export const actions = {
dispatch('contactSearch', { q }),
dispatch('conversationSearch', { q }),
dispatch('messageSearch', { q }),
+ dispatch('articleSearch', { q }),
]);
} catch (error) {
// Ignore error
@@ -108,6 +114,17 @@ export const actions = {
commit(types.MESSAGE_SEARCH_SET_UI_FLAG, { isFetching: false });
}
},
+ async articleSearch({ commit }, { q, page = 1 }) {
+ commit(types.ARTICLE_SEARCH_SET_UI_FLAG, { isFetching: true });
+ try {
+ const { data } = await SearchAPI.articles({ q, page });
+ commit(types.ARTICLE_SEARCH_SET, data.payload.articles);
+ } catch (error) {
+ // Ignore error
+ } finally {
+ commit(types.ARTICLE_SEARCH_SET_UI_FLAG, { isFetching: false });
+ }
+ },
async clearSearchResults({ commit }) {
commit(types.CLEAR_SEARCH_RESULTS);
},
@@ -126,6 +143,9 @@ export const mutations = {
[types.MESSAGE_SEARCH_SET](state, records) {
state.messageRecords = [...state.messageRecords, ...records];
},
+ [types.ARTICLE_SEARCH_SET](state, records) {
+ state.articleRecords = [...state.articleRecords, ...records];
+ },
[types.SEARCH_CONVERSATIONS_SET_UI_FLAG](state, uiFlags) {
state.uiFlags = { ...state.uiFlags, ...uiFlags };
},
@@ -141,10 +161,14 @@ export const mutations = {
[types.MESSAGE_SEARCH_SET_UI_FLAG](state, uiFlags) {
state.uiFlags.message = { ...state.uiFlags.message, ...uiFlags };
},
+ [types.ARTICLE_SEARCH_SET_UI_FLAG](state, uiFlags) {
+ state.uiFlags.article = { ...state.uiFlags.article, ...uiFlags };
+ },
[types.CLEAR_SEARCH_RESULTS](state) {
state.contactRecords = [];
state.conversationRecords = [];
state.messageRecords = [];
+ state.articleRecords = [];
},
};
diff --git a/app/javascript/dashboard/store/modules/conversations/actions.js b/app/javascript/dashboard/store/modules/conversations/actions.js
index 8296f25de..d8ad826ca 100644
--- a/app/javascript/dashboard/store/modules/conversations/actions.js
+++ b/app/javascript/dashboard/store/modules/conversations/actions.js
@@ -327,6 +327,16 @@ const actions = {
}
},
+ deleteConversation: async ({ commit, dispatch }, conversationId) => {
+ try {
+ await ConversationApi.delete(conversationId);
+ commit(types.DELETE_CONVERSATION, conversationId);
+ dispatch('conversationStats/get', {}, { root: true });
+ } catch (error) {
+ throw new Error(error);
+ }
+ },
+
addConversation({ commit, state, dispatch, rootState }, conversation) {
const { currentInbox, appliedFilters } = state;
const {
diff --git a/app/javascript/dashboard/store/modules/conversations/getters.js b/app/javascript/dashboard/store/modules/conversations/getters.js
index f5b83e546..9f5744fbb 100644
--- a/app/javascript/dashboard/store/modules/conversations/getters.js
+++ b/app/javascript/dashboard/store/modules/conversations/getters.js
@@ -18,13 +18,34 @@ const getters = {
getAllConversations: ({ allConversations, chatSortFilter: sortKey }) => {
return allConversations.sort((a, b) => sortComparator(a, b, sortKey));
},
- getFilteredConversations: ({
- allConversations,
- chatSortFilter,
- appliedFilters,
- }) => {
+ getFilteredConversations: (
+ { allConversations, chatSortFilter, appliedFilters },
+ _,
+ __,
+ rootGetters
+ ) => {
+ const currentUser = rootGetters.getCurrentUser;
+ const currentUserId = rootGetters.getCurrentUser.id;
+ const currentAccountId = rootGetters.getCurrentAccountId;
+
+ const permissions = getUserPermissions(currentUser, currentAccountId);
+ const userRole = getUserRole(currentUser, currentAccountId);
+
return allConversations
- .filter(conversation => matchesFilters(conversation, appliedFilters))
+ .filter(conversation => {
+ const matchesFilterResult = matchesFilters(
+ conversation,
+ appliedFilters
+ );
+ const allowedForRole = applyRoleFilter(
+ conversation,
+ userRole,
+ permissions,
+ currentUserId
+ );
+
+ return matchesFilterResult && allowedForRole;
+ })
.sort((a, b) => sortComparator(a, b, chatSortFilter));
},
getSelectedChat: ({ selectedChatId, allConversations }) => {
diff --git a/app/javascript/dashboard/store/modules/conversations/helpers/filterHelpers.js b/app/javascript/dashboard/store/modules/conversations/helpers/filterHelpers.js
index 2591c2c01..d64d3c56b 100644
--- a/app/javascript/dashboard/store/modules/conversations/helpers/filterHelpers.js
+++ b/app/javascript/dashboard/store/modules/conversations/helpers/filterHelpers.js
@@ -47,6 +47,7 @@
* 3. Nested properties in custom_attributes (conversation_type, etc.)
*/
import jsonLogic from 'json-logic-js';
+import { coerceToDate } from '@chatwoot/utils';
/**
* Gets a value from a conversation based on the attribute key
@@ -157,6 +158,20 @@ const contains = (filterValue, conversationValue) => {
return false;
};
+/**
+ * Compares two date values using a comparison function
+ * @param {*} conversationValue - The conversation value to compare
+ * @param {*} filterValue - The filter value to compare against
+ * @param {Function} compareFn - The comparison function to apply
+ * @returns {Boolean} - Returns true if the comparison succeeds, false otherwise
+ */
+const compareDates = (conversationValue, filterValue, compareFn) => {
+ const conversationDate = coerceToDate(conversationValue);
+ const filterDate = coerceToDate(filterValue);
+ if (conversationDate === null || filterDate === null) return false;
+ return compareFn(conversationDate, filterDate);
+};
+
/**
* Checks if a value matches a filter condition
* @param {*} conversationValue - The value to check
@@ -195,10 +210,10 @@ const matchesCondition = (conversationValue, filter) => {
return false; // We already handled null/undefined above
case 'is_greater_than':
- return new Date(conversationValue) > new Date(filterValue);
+ return compareDates(conversationValue, filterValue, (a, b) => a > b);
case 'is_less_than':
- return new Date(conversationValue) < new Date(filterValue);
+ return compareDates(conversationValue, filterValue, (a, b) => a < b);
case 'days_before': {
const today = new Date();
@@ -347,6 +362,7 @@ export const matchesFilters = (conversation, filters) => {
conversation,
filters[0].attribute_key
);
+
return matchesCondition(value, filters[0]);
}
diff --git a/app/javascript/dashboard/store/modules/conversations/helpers/specs/filterHelpers.spec.js b/app/javascript/dashboard/store/modules/conversations/helpers/specs/filterHelpers.spec.js
index 6d709f085..0c9e6a5c0 100644
--- a/app/javascript/dashboard/store/modules/conversations/helpers/specs/filterHelpers.spec.js
+++ b/app/javascript/dashboard/store/modules/conversations/helpers/specs/filterHelpers.spec.js
@@ -463,6 +463,241 @@ describe('filterHelpers', () => {
expect(matchesFilters(conversation, filters)).toBe(true);
});
+ // Test conversation with 10-digit timestamp (seconds) vs standard date filter
+ it('should match conversation with 10-digit timestamp against date string filter', () => {
+ const conversation = { created_at: 1647777600 }; // March 20, 2022 in seconds (10 digits)
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: '2022-03-19', // Standard YYYY-MM-DD format
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
+ // Test conversation with 13-digit timestamp (milliseconds) vs standard date filter
+ it('should match conversation with 13-digit timestamp against date string filter', () => {
+ const conversation = { created_at: 1647777600000 }; // March 20, 2022 in milliseconds (13 digits)
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: '2022-03-19', // Standard YYYY-MM-DD format
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
+ // Test conversation with string timestamp vs standard date filter
+ it('should match conversation with string 10-digit timestamp against date string filter', () => {
+ const conversation = { created_at: '1647777600' }; // March 20, 2022 as string (10 digits)
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: '2022-03-19', // Standard YYYY-MM-DD format
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
+ // Test conversation with string 13-digit timestamp vs standard date filter
+ it('should match conversation with string 13-digit timestamp against date string filter', () => {
+ const conversation = { created_at: '1647777600000' }; // March 20, 2022 as string (13 digits)
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: '2022-03-19', // Standard YYYY-MM-DD format
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
+ // Test conversation with mixed format vs standard date filter with time
+ it('should match conversation with numeric timestamp against ISO date string filter', () => {
+ const conversation = { created_at: 1647777600000 }; // March 20, 2022 12:00:00 GMT (numeric)
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: '2022-03-19T10:30:00Z', // Standard ISO format from filter
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
+ // Test parseDate with date string without time (should default to 00:00:00)
+ it('should match conversation with is_greater_than operator using date string without time', () => {
+ const conversation = { created_at: 1647820800000 }; // March 21, 2022 00:00:00 GMT
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: '2022-03-20', // March 20, 2022 (should become 00:00:00)
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
+ // Test parseDate with ISO date string
+ it('should match conversation with is_greater_than operator using ISO date string', () => {
+ const conversation = { created_at: 1647777600000 }; // March 20, 2022
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: '2022-03-19T00:00:00.000Z', // March 19, 2022 ISO format
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
+ // Test parseDate with null/undefined values
+ it('should handle null filter values in date comparison', () => {
+ const conversation = { created_at: 1647777600000 }; // March 20, 2022
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: null,
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(false);
+ });
+
+ it('should handle undefined filter values in date comparison', () => {
+ const conversation = { created_at: 1647777600000 }; // March 20, 2022
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: undefined,
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(false);
+ });
+
+ // Test parseDate with invalid date strings
+ it('should handle invalid date strings in date comparison', () => {
+ const conversation = { created_at: 1647777600000 }; // March 20, 2022
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: 'invalid-date-string',
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(false);
+ });
+
+ it('should handle non-date string values in date comparison', () => {
+ const conversation = { created_at: 1647777600000 }; // March 20, 2022
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: 'not-a-date',
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(false);
+ });
+
+ // Test is_less_than with various date formats
+ it('should match conversation with is_less_than operator using numeric timestamp', () => {
+ const conversation = { created_at: 1647691200000 }; // March 19, 2022
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_less_than',
+ values: 1647777600, // March 20, 2022 as 10-digit timestamp
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
+ it('should not match conversation with is_less_than operator when date is later', () => {
+ const conversation = { created_at: 1647864000000 }; // March 21, 2022
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_less_than',
+ values: '2022-03-20T12:00:00Z', // March 20, 2022 with time
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(false);
+ });
+
+ // Edge case: Test with conversation having string timestamp
+ it('should handle conversation with string timestamp value', () => {
+ const conversation = { created_at: '1647777600000' }; // March 20, 2022 as string
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: '2022-03-19',
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
+ // Edge case: Test with conversation having 10-digit timestamp
+ it('should handle conversation with 10-digit timestamp value', () => {
+ const conversation = { created_at: 1647777600 }; // March 20, 2022 as seconds (10 digits)
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: '2022-03-19',
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
+ // Test date string with different time formats
+ it('should handle date string with space-separated time', () => {
+ const conversation = { created_at: 1647777600000 }; // March 20, 2022
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: '2022-03-19 10:30:00', // Date with space-separated time
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(true);
+ });
+
+ // Test parseDate with object input (should return null and fail comparison)
+ it('should handle non-string, non-number filter values', () => {
+ const conversation = { created_at: 1647777600000 }; // March 20, 2022
+ const filters = [
+ {
+ attribute_key: 'created_at',
+ filter_operator: 'is_greater_than',
+ values: { date: '2022-03-19' }, // Object instead of string/number
+ query_operator: 'and',
+ },
+ ];
+ expect(matchesFilters(conversation, filters)).toBe(false);
+ });
+
describe('days_before operator', () => {
beforeEach(() => {
// Set the date to March 25, 2022
diff --git a/app/javascript/dashboard/store/modules/conversations/index.js b/app/javascript/dashboard/store/modules/conversations/index.js
index ca0759320..2ee6fd061 100644
--- a/app/javascript/dashboard/store/modules/conversations/index.js
+++ b/app/javascript/dashboard/store/modules/conversations/index.js
@@ -78,10 +78,7 @@ export const mutations = {
}
},
[types.SET_ALL_ATTACHMENTS](_state, { id, data }) {
- const attachments = _state.attachments[id] || [];
-
- attachments.push(...data);
- _state.attachments[id] = [...attachments];
+ _state.attachments[id] = [...data];
},
[types.SET_MISSING_MESSAGES](_state, { id, data }) {
const [chat] = _state.allConversations.filter(c => c.id === id);
@@ -207,6 +204,12 @@ export const mutations = {
_state.allConversations.push(conversation);
},
+ [types.DELETE_CONVERSATION](_state, conversationId) {
+ _state.allConversations = _state.allConversations.filter(
+ c => c.id !== conversationId
+ );
+ },
+
[types.UPDATE_CONVERSATION](_state, conversation) {
const { allConversations } = _state;
const index = allConversations.findIndex(c => c.id === conversation.id);
diff --git a/app/javascript/dashboard/store/modules/labels.js b/app/javascript/dashboard/store/modules/labels.js
index 34f63f2a1..662c2973e 100644
--- a/app/javascript/dashboard/store/modules/labels.js
+++ b/app/javascript/dashboard/store/modules/labels.js
@@ -26,6 +26,9 @@ export const getters = {
.filter(record => record.show_on_sidebar)
.sort((a, b) => a.title.localeCompare(b.title));
},
+ getLabelById: _state => id => {
+ return _state.records.find(record => record.id === Number(id));
+ },
};
export const actions = {
diff --git a/app/javascript/dashboard/store/modules/specs/account/actions.spec.js b/app/javascript/dashboard/store/modules/specs/account/actions.spec.js
index 57b4a2f80..9ffdf0ad4 100644
--- a/app/javascript/dashboard/store/modules/specs/account/actions.spec.js
+++ b/app/javascript/dashboard/store/modules/specs/account/actions.spec.js
@@ -39,10 +39,13 @@ describe('#actions', () => {
describe('#update', () => {
it('sends correct actions if API is success', async () => {
- axios.patch.mockResolvedValue();
+ axios.patch.mockResolvedValue({
+ data: { id: 1, name: 'John' },
+ });
await actions.update({ commit, getters }, accountData);
expect(commit.mock.calls).toEqual([
[types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: true }],
+ [types.default.EDIT_ACCOUNT, { id: 1, name: 'John' }],
[types.default.SET_ACCOUNT_UI_FLAG, { isUpdating: false }],
]);
});
diff --git a/app/javascript/dashboard/store/modules/specs/agentBots/agentBots.spec.js b/app/javascript/dashboard/store/modules/specs/agentBots/agentBots.spec.js
index b2fa47313..168c8f78c 100644
--- a/app/javascript/dashboard/store/modules/specs/agentBots/agentBots.spec.js
+++ b/app/javascript/dashboard/store/modules/specs/agentBots/agentBots.spec.js
@@ -170,4 +170,21 @@ describe('#actions', () => {
]);
});
});
+ describe('#resetAccessToken', () => {
+ it('sends correct actions if API is success', async () => {
+ const mockResponse = {
+ data: { ...agentBotRecords[0], access_token: 'new_token_123' },
+ };
+ axios.post.mockResolvedValue(mockResponse);
+ const result = await actions.resetAccessToken(
+ { commit },
+ agentBotRecords[0].id
+ );
+
+ expect(commit.mock.calls).toEqual([
+ [types.EDIT_AGENT_BOT, mockResponse.data],
+ ]);
+ expect(result).toBe(mockResponse.data);
+ });
+ });
});
diff --git a/app/javascript/dashboard/store/modules/specs/auth/actions.spec.js b/app/javascript/dashboard/store/modules/specs/auth/actions.spec.js
index 3de56b1fe..b5dfebe26 100644
--- a/app/javascript/dashboard/store/modules/specs/auth/actions.spec.js
+++ b/app/javascript/dashboard/store/modules/specs/auth/actions.spec.js
@@ -228,4 +228,20 @@ describe('#actions', () => {
);
});
});
+
+ describe('#resetAccessToken', () => {
+ it('sends correct actions if API is success', async () => {
+ const mockResponse = {
+ data: { id: 1, name: 'John', access_token: 'new_token_123' },
+ headers: { expiry: 581842904 },
+ };
+ axios.post.mockResolvedValue(mockResponse);
+ const result = await actions.resetAccessToken({ commit });
+
+ expect(commit.mock.calls).toEqual([
+ [types.SET_CURRENT_USER, mockResponse.data],
+ ]);
+ expect(result).toBe(true);
+ });
+ });
});
diff --git a/app/javascript/dashboard/store/modules/specs/contacts/actions.spec.js b/app/javascript/dashboard/store/modules/specs/contacts/actions.spec.js
index ec75ec968..79852a42e 100644
--- a/app/javascript/dashboard/store/modules/specs/contacts/actions.spec.js
+++ b/app/javascript/dashboard/store/modules/specs/contacts/actions.spec.js
@@ -70,6 +70,30 @@ describe('#actions', () => {
});
});
+ describe('#active', () => {
+ it('sends correct mutations if API is success', async () => {
+ axios.get.mockResolvedValue({
+ data: { payload: contactList, meta: { count: 100, current_page: 1 } },
+ });
+ await actions.active({ commit });
+ expect(commit.mock.calls).toEqual([
+ [types.SET_CONTACT_UI_FLAG, { isFetching: true }],
+ [types.CLEAR_CONTACTS],
+ [types.SET_CONTACTS, contactList],
+ [types.SET_CONTACT_META, { count: 100, current_page: 1 }],
+ [types.SET_CONTACT_UI_FLAG, { isFetching: false }],
+ ]);
+ });
+ it('sends correct mutations if API is error', async () => {
+ axios.get.mockRejectedValue({ message: 'Incorrect header' });
+ await actions.active({ commit });
+ expect(commit.mock.calls).toEqual([
+ [types.SET_CONTACT_UI_FLAG, { isFetching: true }],
+ [types.SET_CONTACT_UI_FLAG, { isFetching: false }],
+ ]);
+ });
+ });
+
describe('#update', () => {
it('sends correct mutations if API is success', async () => {
axios.patch.mockResolvedValue({ data: { payload: contactList[0] } });
diff --git a/app/javascript/dashboard/store/modules/specs/conversationSearch/actions.spec.js b/app/javascript/dashboard/store/modules/specs/conversationSearch/actions.spec.js
index ebf6c0557..6ac21f84a 100644
--- a/app/javascript/dashboard/store/modules/specs/conversationSearch/actions.spec.js
+++ b/app/javascript/dashboard/store/modules/specs/conversationSearch/actions.spec.js
@@ -75,6 +75,7 @@ describe('#actions', () => {
q: 'test',
});
expect(dispatch).toHaveBeenCalledWith('messageSearch', { q: 'test' });
+ expect(dispatch).toHaveBeenCalledWith('articleSearch', { q: 'test' });
});
});
@@ -150,6 +151,30 @@ describe('#actions', () => {
});
});
+ describe('#articleSearch', () => {
+ it('should handle successful article search', async () => {
+ axios.get.mockResolvedValue({
+ data: { payload: { articles: [{ id: 1 }] } },
+ });
+
+ await actions.articleSearch({ commit }, { q: 'test', page: 1 });
+ expect(commit.mock.calls).toEqual([
+ [types.ARTICLE_SEARCH_SET_UI_FLAG, { isFetching: true }],
+ [types.ARTICLE_SEARCH_SET, [{ id: 1 }]],
+ [types.ARTICLE_SEARCH_SET_UI_FLAG, { isFetching: false }],
+ ]);
+ });
+
+ it('should handle failed article search', async () => {
+ axios.get.mockRejectedValue({});
+ await actions.articleSearch({ commit }, { q: 'test' });
+ expect(commit.mock.calls).toEqual([
+ [types.ARTICLE_SEARCH_SET_UI_FLAG, { isFetching: true }],
+ [types.ARTICLE_SEARCH_SET_UI_FLAG, { isFetching: false }],
+ ]);
+ });
+ });
+
describe('#clearSearchResults', () => {
it('should commit clear search results mutation', () => {
actions.clearSearchResults({ commit });
diff --git a/app/javascript/dashboard/store/modules/specs/conversationSearch/getters.spec.js b/app/javascript/dashboard/store/modules/specs/conversationSearch/getters.spec.js
index ea3ca7048..efce6084a 100644
--- a/app/javascript/dashboard/store/modules/specs/conversationSearch/getters.spec.js
+++ b/app/javascript/dashboard/store/modules/specs/conversationSearch/getters.spec.js
@@ -37,6 +37,15 @@ describe('#getters', () => {
]);
});
+ it('getArticleRecords', () => {
+ const state = {
+ articleRecords: [{ id: 1, title: 'Article 1' }],
+ };
+ expect(getters.getArticleRecords(state)).toEqual([
+ { id: 1, title: 'Article 1' },
+ ]);
+ });
+
it('getUIFlags', () => {
const state = {
uiFlags: {
@@ -45,6 +54,7 @@ describe('#getters', () => {
contact: { isFetching: true },
message: { isFetching: false },
conversation: { isFetching: false },
+ article: { isFetching: false },
},
};
expect(getters.getUIFlags(state)).toEqual({
@@ -53,6 +63,7 @@ describe('#getters', () => {
contact: { isFetching: true },
message: { isFetching: false },
conversation: { isFetching: false },
+ article: { isFetching: false },
});
});
});
diff --git a/app/javascript/dashboard/store/modules/specs/conversationSearch/mutations.spec.js b/app/javascript/dashboard/store/modules/specs/conversationSearch/mutations.spec.js
index 7bef2e527..bf7e833d0 100644
--- a/app/javascript/dashboard/store/modules/specs/conversationSearch/mutations.spec.js
+++ b/app/javascript/dashboard/store/modules/specs/conversationSearch/mutations.spec.js
@@ -101,17 +101,39 @@ describe('#mutations', () => {
});
});
+ describe('#ARTICLE_SEARCH_SET', () => {
+ it('should append new article records to existing ones', () => {
+ const state = { articleRecords: [{ id: 1 }] };
+ mutations[types.ARTICLE_SEARCH_SET](state, [{ id: 2 }]);
+ expect(state.articleRecords).toEqual([{ id: 1 }, { id: 2 }]);
+ });
+ });
+
+ describe('#ARTICLE_SEARCH_SET_UI_FLAG', () => {
+ it('set article search UI flags correctly', () => {
+ const state = {
+ uiFlags: {
+ article: { isFetching: true },
+ },
+ };
+ mutations[types.ARTICLE_SEARCH_SET_UI_FLAG](state, { isFetching: false });
+ expect(state.uiFlags.article).toEqual({ isFetching: false });
+ });
+ });
+
describe('#CLEAR_SEARCH_RESULTS', () => {
it('should clear all search records', () => {
const state = {
contactRecords: [{ id: 1 }],
conversationRecords: [{ id: 1 }],
messageRecords: [{ id: 1 }],
+ articleRecords: [{ id: 1 }],
};
mutations[types.CLEAR_SEARCH_RESULTS](state);
expect(state.contactRecords).toEqual([]);
expect(state.conversationRecords).toEqual([]);
expect(state.messageRecords).toEqual([]);
+ expect(state.articleRecords).toEqual([]);
});
});
});
diff --git a/app/javascript/dashboard/store/modules/specs/conversations/actions.spec.js b/app/javascript/dashboard/store/modules/specs/conversations/actions.spec.js
index dc2bf8d3a..161ae914b 100644
--- a/app/javascript/dashboard/store/modules/specs/conversations/actions.spec.js
+++ b/app/javascript/dashboard/store/modules/specs/conversations/actions.spec.js
@@ -513,6 +513,28 @@ describe('#deleteMessage', () => {
expect(commit.mock.calls).toEqual([]);
});
+ describe('#deleteConversation', () => {
+ it('send correct actions if API is success', async () => {
+ axios.delete.mockResolvedValue({
+ data: { id: 1 },
+ });
+ await actions.deleteConversation({ commit, dispatch }, 1);
+ expect(commit.mock.calls).toEqual([[types.DELETE_CONVERSATION, 1]]);
+ expect(dispatch.mock.calls).toEqual([
+ ['conversationStats/get', {}, { root: true }],
+ ]);
+ });
+
+ it('send no actions if API is error', async () => {
+ axios.delete.mockRejectedValue({ message: 'Incorrect header' });
+ await expect(
+ actions.deleteConversation({ commit, dispatch }, 1)
+ ).rejects.toThrow(Error);
+ expect(commit.mock.calls).toEqual([]);
+ expect(dispatch.mock.calls).toEqual([]);
+ });
+ });
+
describe('#updateCustomAttributes', () => {
it('update conversation custom attributes', async () => {
axios.post.mockResolvedValue({
diff --git a/app/javascript/dashboard/store/modules/specs/conversations/getters.spec.js b/app/javascript/dashboard/store/modules/specs/conversations/getters.spec.js
index 8ac89f49a..7b6c38456 100644
--- a/app/javascript/dashboard/store/modules/specs/conversations/getters.spec.js
+++ b/app/javascript/dashboard/store/modules/specs/conversations/getters.spec.js
@@ -325,4 +325,308 @@ describe('#getters', () => {
});
});
});
+
+ describe('#getFilteredConversations', () => {
+ const mockConversations = [
+ {
+ id: 1,
+ status: 'open',
+ meta: { assignee: { id: 1 } },
+ last_activity_at: 1000,
+ },
+ {
+ id: 2,
+ status: 'open',
+ meta: {},
+ last_activity_at: 2000,
+ },
+ {
+ id: 3,
+ status: 'resolved',
+ meta: { assignee: { id: 2 } },
+ last_activity_at: 3000,
+ },
+ ];
+
+ const mockRootGetters = {
+ getCurrentUser: {
+ id: 1,
+ accounts: [{ id: 1, role: 'agent', permissions: [] }],
+ },
+ getCurrentAccountId: 1,
+ };
+
+ it('filters conversations based on role permissions for administrator', () => {
+ const state = {
+ allConversations: mockConversations,
+ chatSortFilter: 'last_activity_at_desc',
+ appliedFilters: [],
+ };
+
+ const rootGetters = {
+ ...mockRootGetters,
+ getCurrentUser: {
+ ...mockRootGetters.getCurrentUser,
+ accounts: [{ id: 1, role: 'administrator', permissions: [] }],
+ },
+ };
+
+ const result = getters.getFilteredConversations(
+ state,
+ {},
+ {},
+ rootGetters
+ );
+
+ expect(result).toEqual([
+ mockConversations[2],
+ mockConversations[1],
+ mockConversations[0],
+ ]);
+ });
+
+ it('filters conversations based on role permissions for agent', () => {
+ const state = {
+ allConversations: mockConversations,
+ chatSortFilter: 'last_activity_at_desc',
+ appliedFilters: [],
+ };
+
+ const rootGetters = {
+ ...mockRootGetters,
+ getCurrentUser: {
+ ...mockRootGetters.getCurrentUser,
+ accounts: [{ id: 1, role: 'agent', permissions: [] }],
+ },
+ };
+
+ const result = getters.getFilteredConversations(
+ state,
+ {},
+ {},
+ rootGetters
+ );
+
+ expect(result).toEqual([
+ mockConversations[2],
+ mockConversations[1],
+ mockConversations[0],
+ ]);
+ });
+
+ it('filters conversations for custom role with conversation_manage permission', () => {
+ const state = {
+ allConversations: mockConversations,
+ chatSortFilter: 'last_activity_at_desc',
+ appliedFilters: [],
+ };
+
+ const rootGetters = {
+ ...mockRootGetters,
+ getCurrentUser: {
+ ...mockRootGetters.getCurrentUser,
+ accounts: [
+ {
+ id: 1,
+ custom_role_id: 5,
+ permissions: ['conversation_manage'],
+ },
+ ],
+ },
+ };
+
+ const result = getters.getFilteredConversations(
+ state,
+ {},
+ {},
+ rootGetters
+ );
+
+ expect(result).toEqual([
+ mockConversations[2],
+ mockConversations[1],
+ mockConversations[0],
+ ]);
+ });
+
+ it('filters conversations for custom role with conversation_unassigned_manage permission', () => {
+ const state = {
+ allConversations: mockConversations,
+ chatSortFilter: 'last_activity_at_desc',
+ appliedFilters: [],
+ };
+
+ const rootGetters = {
+ ...mockRootGetters,
+ getCurrentUser: {
+ ...mockRootGetters.getCurrentUser,
+ accounts: [
+ {
+ id: 1,
+ custom_role_id: 5,
+ permissions: ['conversation_unassigned_manage'],
+ },
+ ],
+ },
+ };
+
+ const result = getters.getFilteredConversations(
+ state,
+ {},
+ {},
+ rootGetters
+ );
+
+ // Should include conversation assigned to user (id: 1) and unassigned conversation
+ expect(result).toEqual([mockConversations[1], mockConversations[0]]);
+ });
+
+ it('filters conversations for custom role with conversation_participating_manage permission', () => {
+ const state = {
+ allConversations: mockConversations,
+ chatSortFilter: 'last_activity_at_desc',
+ appliedFilters: [],
+ };
+
+ const rootGetters = {
+ ...mockRootGetters,
+ getCurrentUser: {
+ ...mockRootGetters.getCurrentUser,
+ accounts: [
+ {
+ id: 1,
+ custom_role_id: 5,
+ permissions: ['conversation_participating_manage'],
+ },
+ ],
+ },
+ };
+
+ const result = getters.getFilteredConversations(
+ state,
+ {},
+ {},
+ rootGetters
+ );
+
+ // Should only include conversation assigned to user (id: 1)
+ expect(result).toEqual([mockConversations[0]]);
+ });
+
+ it('filters conversations for custom role with no permissions', () => {
+ const state = {
+ allConversations: mockConversations,
+ chatSortFilter: 'last_activity_at_desc',
+ appliedFilters: [],
+ };
+
+ const rootGetters = {
+ ...mockRootGetters,
+ getCurrentUser: {
+ ...mockRootGetters.getCurrentUser,
+ accounts: [
+ {
+ id: 1,
+ custom_role_id: 5,
+ permissions: [],
+ },
+ ],
+ },
+ };
+
+ const result = getters.getFilteredConversations(
+ state,
+ {},
+ {},
+ rootGetters
+ );
+
+ // Should return empty array as user has no permissions
+ expect(result).toEqual([]);
+ });
+
+ it('applies filters and role permissions together', () => {
+ const state = {
+ allConversations: mockConversations,
+ chatSortFilter: 'last_activity_at_desc',
+ appliedFilters: [
+ {
+ attribute_key: 'status',
+ filter_operator: 'equal_to',
+ values: ['open'],
+ query_operator: 'and',
+ },
+ ],
+ };
+
+ const rootGetters = {
+ ...mockRootGetters,
+ getCurrentUser: {
+ ...mockRootGetters.getCurrentUser,
+ accounts: [
+ {
+ id: 1,
+ custom_role_id: 5,
+ permissions: ['conversation_participating_manage'],
+ },
+ ],
+ },
+ };
+
+ const result = getters.getFilteredConversations(
+ state,
+ {},
+ {},
+ rootGetters
+ );
+
+ // Should only include open conversation assigned to user (id: 1)
+ expect(result).toEqual([mockConversations[0]]);
+ });
+
+ it('returns empty array when no conversations match filters', () => {
+ const state = {
+ allConversations: mockConversations,
+ chatSortFilter: 'last_activity_at_desc',
+ appliedFilters: [
+ {
+ attribute_key: 'status',
+ filter_operator: 'equal_to',
+ values: ['pending'],
+ query_operator: 'and',
+ },
+ ],
+ };
+
+ const result = getters.getFilteredConversations(
+ state,
+ {},
+ {},
+ mockRootGetters
+ );
+
+ expect(result).toEqual([]);
+ });
+
+ it('sorts filtered conversations according to chatSortFilter', () => {
+ const state = {
+ allConversations: mockConversations,
+ chatSortFilter: 'last_activity_at_asc',
+ appliedFilters: [],
+ };
+
+ const result = getters.getFilteredConversations(
+ state,
+ {},
+ {},
+ mockRootGetters
+ );
+
+ expect(result).toEqual([
+ mockConversations[0],
+ mockConversations[1],
+ mockConversations[2],
+ ]);
+ });
+ });
});
diff --git a/app/javascript/dashboard/store/modules/specs/conversations/mutations.spec.js b/app/javascript/dashboard/store/modules/specs/conversations/mutations.spec.js
index 091dc3daa..b8660b20d 100644
--- a/app/javascript/dashboard/store/modules/specs/conversations/mutations.spec.js
+++ b/app/javascript/dashboard/store/modules/specs/conversations/mutations.spec.js
@@ -884,6 +884,17 @@ describe('#mutations', () => {
});
});
+ describe('#DELETE_CONVERSATION', () => {
+ it('should delete a conversation', () => {
+ const state = {
+ allConversations: [{ id: 1, messages: [] }],
+ };
+
+ mutations[types.DELETE_CONVERSATION](state, 1);
+ expect(state.allConversations).toEqual([]);
+ });
+ });
+
describe('#SET_LIST_LOADING_STATUS', () => {
it('should set listLoadingStatus to true', () => {
const state = {
diff --git a/app/javascript/dashboard/store/modules/specs/summaryReports.spec.js b/app/javascript/dashboard/store/modules/specs/summaryReports.spec.js
index 043987136..c1a199856 100644
--- a/app/javascript/dashboard/store/modules/specs/summaryReports.spec.js
+++ b/app/javascript/dashboard/store/modules/specs/summaryReports.spec.js
@@ -7,6 +7,7 @@ vi.mock('dashboard/api/summaryReports', () => ({
getInboxReports: vi.fn(),
getAgentReports: vi.fn(),
getTeamReports: vi.fn(),
+ getLabelReports: vi.fn(),
},
}));
@@ -25,10 +26,12 @@ describe('Summary Reports Store', () => {
inboxSummaryReports: [],
agentSummaryReports: [],
teamSummaryReports: [],
+ labelSummaryReports: [],
uiFlags: {
isFetchingInboxSummaryReports: false,
isFetchingAgentSummaryReports: false,
isFetchingTeamSummaryReports: false,
+ isFetchingLabelSummaryReports: false,
},
});
});
@@ -39,6 +42,7 @@ describe('Summary Reports Store', () => {
inboxSummaryReports: [{ id: 1 }],
agentSummaryReports: [{ id: 2 }],
teamSummaryReports: [{ id: 3 }],
+ labelSummaryReports: [{ id: 4 }],
uiFlags: { isFetchingInboxSummaryReports: true },
};
@@ -54,6 +58,10 @@ describe('Summary Reports Store', () => {
expect(store.getters.getTeamSummaryReports(state)).toEqual([{ id: 3 }]);
});
+ it('should return label summary reports', () => {
+ expect(store.getters.getLabelSummaryReports(state)).toEqual([{ id: 4 }]);
+ });
+
it('should return UI flags', () => {
expect(store.getters.getUIFlags(state)).toEqual({
isFetchingInboxSummaryReports: true,
@@ -86,6 +94,14 @@ describe('Summary Reports Store', () => {
expect(state.teamSummaryReports).toEqual(data);
});
+ it('should set label summary report', () => {
+ const state = { ...initialState };
+ const data = [{ id: 4 }];
+
+ store.mutations.setLabelSummaryReport(state, data);
+ expect(state.labelSummaryReports).toEqual(data);
+ });
+
it('should merge UI flags with existing flags', () => {
const state = {
uiFlags: { flag1: true, flag2: false },
@@ -185,5 +201,29 @@ describe('Summary Reports Store', () => {
});
});
});
+
+ describe('fetchLabelSummaryReports', () => {
+ it('should fetch label reports successfully', async () => {
+ const params = { labelId: 789 };
+ const mockResponse = {
+ data: [{ label_id: 789, label_name: 'Test Label' }],
+ };
+
+ SummaryReportsAPI.getLabelReports.mockResolvedValue(mockResponse);
+
+ await store.actions.fetchLabelSummaryReports({ commit }, params);
+
+ expect(commit).toHaveBeenCalledWith('setUIFlags', {
+ isFetchingLabelSummaryReports: true,
+ });
+ expect(SummaryReportsAPI.getLabelReports).toHaveBeenCalledWith(params);
+ expect(commit).toHaveBeenCalledWith('setLabelSummaryReport', [
+ { labelId: 789, labelName: 'Test Label' },
+ ]);
+ expect(commit).toHaveBeenCalledWith('setUIFlags', {
+ isFetchingLabelSummaryReports: false,
+ });
+ });
+ });
});
});
diff --git a/app/javascript/dashboard/store/modules/summaryReports.js b/app/javascript/dashboard/store/modules/summaryReports.js
index 15df7589b..d95c0df30 100644
--- a/app/javascript/dashboard/store/modules/summaryReports.js
+++ b/app/javascript/dashboard/store/modules/summaryReports.js
@@ -17,6 +17,11 @@ const typeMap = {
apiMethod: 'getTeamReports',
mutationKey: 'setTeamSummaryReport',
},
+ label: {
+ flagKey: 'isFetchingLabelSummaryReports',
+ apiMethod: 'getLabelReports',
+ mutationKey: 'setLabelSummaryReport',
+ },
};
async function fetchSummaryReports(type, params, { commit }) {
@@ -38,10 +43,12 @@ export const initialState = {
inboxSummaryReports: [],
agentSummaryReports: [],
teamSummaryReports: [],
+ labelSummaryReports: [],
uiFlags: {
isFetchingInboxSummaryReports: false,
isFetchingAgentSummaryReports: false,
isFetchingTeamSummaryReports: false,
+ isFetchingLabelSummaryReports: false,
},
};
@@ -55,6 +62,9 @@ export const getters = {
getTeamSummaryReports(state) {
return state.teamSummaryReports;
},
+ getLabelSummaryReports(state) {
+ return state.labelSummaryReports;
+ },
getUIFlags(state) {
return state.uiFlags;
},
@@ -72,6 +82,10 @@ export const actions = {
fetchTeamSummaryReports({ commit }, params) {
return fetchSummaryReports('team', params, { commit });
},
+
+ fetchLabelSummaryReports({ commit }, params) {
+ return fetchSummaryReports('label', params, { commit });
+ },
};
export const mutations = {
@@ -84,6 +98,9 @@ export const mutations = {
setTeamSummaryReport(state, data) {
state.teamSummaryReports = data;
},
+ setLabelSummaryReport(state, data) {
+ state.labelSummaryReports = data;
+ },
setUIFlags(state, uiFlag) {
state.uiFlags = { ...state.uiFlags, ...uiFlag };
},
diff --git a/app/javascript/dashboard/store/mutation-types.js b/app/javascript/dashboard/store/mutation-types.js
index a74207e92..a63fec2d1 100644
--- a/app/javascript/dashboard/store/mutation-types.js
+++ b/app/javascript/dashboard/store/mutation-types.js
@@ -56,6 +56,7 @@ export default {
SET_ALL_ATTACHMENTS: 'SET_ALL_ATTACHMENTS',
ADD_CONVERSATION_ATTACHMENTS: 'ADD_CONVERSATION_ATTACHMENTS',
DELETE_CONVERSATION_ATTACHMENTS: 'DELETE_CONVERSATION_ATTACHMENTS',
+ DELETE_CONVERSATION: 'DELETE_CONVERSATION',
SET_CONVERSATION_CAN_REPLY: 'SET_CONVERSATION_CAN_REPLY',
@@ -317,8 +318,10 @@ export default {
CONVERSATION_SEARCH_SET: 'CONVERSATION_SEARCH_SET',
CONVERSATION_SEARCH_SET_UI_FLAG: 'CONVERSATION_SEARCH_SET_UI_FLAG',
MESSAGE_SEARCH_SET: 'MESSAGE_SEARCH_SET',
+ ARTICLE_SEARCH_SET: 'ARTICLE_SEARCH_SET',
CLEAR_SEARCH_RESULTS: 'CLEAR_SEARCH_RESULTS',
MESSAGE_SEARCH_SET_UI_FLAG: 'MESSAGE_SEARCH_SET_UI_FLAG',
+ ARTICLE_SEARCH_SET_UI_FLAG: 'ARTICLE_SEARCH_SET_UI_FLAG',
FULL_SEARCH_SET_UI_FLAG: 'FULL_SEARCH_SET_UI_FLAG',
SET_CONVERSATION_PARTICIPANTS_UI_FLAG:
'SET_CONVERSATION_PARTICIPANTS_UI_FLAG',
diff --git a/app/javascript/dashboard/store/utils/api.js b/app/javascript/dashboard/store/utils/api.js
index 281b911b5..470d98df7 100644
--- a/app/javascript/dashboard/store/utils/api.js
+++ b/app/javascript/dashboard/store/utils/api.js
@@ -2,7 +2,9 @@ import fromUnixTime from 'date-fns/fromUnixTime';
import differenceInDays from 'date-fns/differenceInDays';
import Cookies from 'js-cookie';
import { LOCAL_STORAGE_KEYS } from 'dashboard/constants/localStorage';
+import { SESSION_STORAGE_KEYS } from 'dashboard/constants/sessionStorage';
import { LocalStorage } from 'shared/helpers/localStorage';
+import SessionStorage from 'shared/helpers/sessionStorage';
import { emitter } from 'shared/helpers/mitt';
import {
ANALYTICS_IDENTITY,
@@ -44,6 +46,10 @@ export const clearLocalStorageOnLogout = () => {
LocalStorage.remove(LOCAL_STORAGE_KEYS.DRAFT_MESSAGES);
};
+export const clearSessionStorageOnLogout = () => {
+ SessionStorage.remove(SESSION_STORAGE_KEYS.IMPERSONATION_USER);
+};
+
export const deleteIndexedDBOnLogout = async () => {
let dbs = [];
try {
@@ -75,6 +81,7 @@ export const clearCookiesOnLogout = () => {
emitter.emit(ANALYTICS_RESET);
clearBrowserSessionCookies();
clearLocalStorageOnLogout();
+ clearSessionStorageOnLogout();
const globalConfig = window.globalConfig || {};
const logoutRedirectLink = globalConfig.LOGOUT_REDIRECT_LINK || '/';
window.location = logoutRedirectLink;
diff --git a/app/javascript/entrypoints/sdk.js b/app/javascript/entrypoints/sdk.js
index 0aac9104e..a2cf297f1 100755
--- a/app/javascript/entrypoints/sdk.js
+++ b/app/javascript/entrypoints/sdk.js
@@ -23,12 +23,18 @@ const runSDK = ({ baseUrl, websiteToken }) => {
return;
}
- if (window.Turbo) {
- // if this is a Rails Turbo app
- document.addEventListener('turbo:before-render', event =>
- restoreWidgetInDOM(event.detail.newBody)
- );
- }
+ // if this is a Rails Turbo app
+ document.addEventListener('turbo:before-render', event => {
+ // when morphing the page, this typically happens on reload like events
+ // say you update a "Customer" on a form and it reloads the page
+ // We have already added data-turbo-permananent to true. This
+ // will ensure that the widget it preserved
+ // Read more about morphing here: https://turbo.hotwired.dev/handbook/page_refreshes#morphing
+ // and peristing elements here: https://turbo.hotwired.dev/handbook/building#persisting-elements-across-page-loads
+ if (event.detail.renderMethod === 'morph') return;
+
+ restoreWidgetInDOM(event.detail.newBody);
+ });
if (window.Turbolinks) {
document.addEventListener('turbolinks:before-render', event => {
diff --git a/app/javascript/portal/application.scss b/app/javascript/portal/application.scss
index bdb7bd1d4..4aaf36191 100644
--- a/app/javascript/portal/application.scss
+++ b/app/javascript/portal/application.scss
@@ -1,3 +1,4 @@
+// scss-lint:disable SpaceAfterPropertyColon
@import 'tailwindcss/base';
@import 'tailwindcss/components';
@import 'tailwindcss/utilities';
@@ -7,7 +8,21 @@
html,
body {
- font-family: 'InterDisplay', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
+ font-family:
+ 'InterDisplay',
+ -apple-system,
+ system-ui,
+ BlinkMacSystemFont,
+ 'Segoe UI',
+ Roboto,
+ 'Helvetica Neue',
+ Tahoma,
+ Arial,
+ sans-serif,
+ 'Noto Sans',
+ 'Apple Color Emoji',
+ 'Segoe UI Emoji',
+ 'Noto Color Emoji';
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
height: 100%;
diff --git a/app/javascript/portal/components/TableOfContents.vue b/app/javascript/portal/components/TableOfContents.vue
index 16da81f71..3cb140018 100644
--- a/app/javascript/portal/components/TableOfContents.vue
+++ b/app/javascript/portal/components/TableOfContents.vue
@@ -37,7 +37,7 @@ export default {
}
if (el.tag === 'h2') {
if (this.h1Count > 0) {
- return 'ml-2';
+ return 'ltr:ml-2 rtl:mr-2';
}
return '';
}
@@ -46,7 +46,7 @@ export default {
if (!this.h1Count && !this.h2Count) {
return '';
}
- return 'ml-5';
+ return 'ltr:ml-5 rtl:mr-5';
}
return '';
@@ -94,17 +94,19 @@ export default {
-